SQL之CASE WHEN函數運用

來源:http://news.mkq.online/ 作者:牛站新聞

在項目中,有些時候需要聯表並計算兩字段的值,這個時候CASE WHEN函數就發揮了其作用。廢話不多說,請看如下SQL語言:

select c.ProductID,(CASE WHEN (select top 1 Price from Pro_Norm as d where d.Pro_ID=c.ProductID)!='' THEN (CASE WHEN c.ProModel=1 THEN (select top 1 Price from Pro_Norm as d where d.Pro_ID=c.ProductID)*c.ProCredit ELSE (select top 1 Price from Pro_Norm as d where d.Pro_ID=c.ProductID)-c.ProCredit END) ELSE c.ProPrice END) as ProPrice from Pro_Rel_Mot as c

select a.,(CASE WHEN b.ProPrice!='' THEN b.ProPrice ELSE a.pro_ShopPrice END) as EndProPrice from yxs_product as a left join (select c.ProductID,(CASE WHEN (select top 1 Price from Pro_Norm as d where d.Pro_ID=c.ProductID)!='' THEN (CASE WHEN c.ProModel=1 THEN (select top 1 Price from Pro_Norm as d where d.Pro_ID=c.ProductID)c.ProCredit ELSE (select top 1 Price from Pro_Norm as d where d.Pro_ID=c.ProductID)-c.ProCredit END) ELSE c.ProPrice END) as ProPrice from Pro_Rel_Mot as c) as b on a.pro_ID = b.ProductID where a.pro_Audit=1 and datediff(DAY,a.pro_AutoUp,getdate()) >=0 and datediff(DAY,a.pro_AutoDown,getdate()) <= 0 and cid=90 order by EndProPrice desc

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章