SQL小白這裏查詢掙扎......返回另一個值,如果首選值爲null
我有兩個表,一個包含不同的價格表一個包含產品信息(ItemCode,ITEMNAME)和一個(最多10)爲每個產品。
用簡單的英語,這就是我想要達到的目標:
Select T0.ItemCode, T0.ItemName, T1.Price
採取價格從價格表6:如果價格價格表6爲空,再從價格表1的價格和扣除5%
它似乎應該是相當直接的,但我不確定從哪裏開始誠實,我會感謝一些建議。
非常感謝, 邁克爾
SQL小白這裏查詢掙扎......返回另一個值,如果首選值爲null
我有兩個表,一個包含不同的價格表一個包含產品信息(ItemCode,ITEMNAME)和一個(最多10)爲每個產品。
用簡單的英語,這就是我想要達到的目標:
Select T0.ItemCode, T0.ItemName, T1.Price
採取價格從價格表6:如果價格價格表6爲空,再從價格表1的價格和扣除5%
它似乎應該是相當直接的,但我不確定從哪裏開始誠實,我會感謝一些建議。
非常感謝, 邁克爾
您需要3210功能看起來像:
SELECT COALESCE(T1.PRICE,"MISSING") FROM [TABLE]
你可以找到關於它的更多信息您的RDBMS」文檔中,但是這將返回‘失蹤’,如果字段返回一個NULL。
這裏有兩個連接,每一個價格表這樣的方式:
select pi.ItemCode, pi.ItemName,
coalesce(pl6.price, pl1.price*0.95) as price
from ProductInformation pi left outer join
PriceList pl6
on pi.ItemCode = pl6.ItemCode and pi6.List = 6 left outer join
PriceList pl1
on pi.ItemCode = pl1.ItemCode and pi1.list = 1;
這假設價格表爲不同的行。如果他們是在同一行(price1
,price2
。),那麼這將工作:
select pi.ItemCode, pi.ItemName,
coalesce(pl.price6, pl.price1*0.95) as price
from ProductInformation pi left outer join
PriceList pl
on pi.ItemCode = pl.ItemCode;
對於那些DBMS? – MicSim
請儘可能地顯示一些表格數據。 –