2013-03-13 27 views
0

在MS SQL有沒有一種方法,我可以添加一個條件列的聯合查詢,如下面的一個基於第一列的值?如何將條件列添加到MS SQL中的聯合查詢中?

基本上即時嘗試添加bin值作爲第四列,如果部分值是像('%XX')或讓它顯示0,到目前爲止,我只能夠添加另一列鏡像MAX( part_bins.bin)列,如果代碼不符合。

SELECT part_bins.part AS part, 
     SUM(part_bins.free_stock) AS FREE_STOCK, 
     MAX(PART_BINS.BIN) AS Bin 
FROM part_bins 
LEFT OUTER JOIN part ON part_bins.part = part.part 
WHERE (part_bins.free_stock > 0) 
GROUP BY part_bins.part 
UNION 
SELECT part.master_part AS part, 
     SUM(part_bins.free_stock) AS FREE_STOCK, 
     MAX(PART_BINS.BIN) AS Bin 
FROM part_bins 
LEFT OUTER JOIN part ON part_bins.part = part.part 
WHERE (part_bins.free_stock > 0) 
GROUP BY part.master_part 
+0

甚至可以在此查詢中添加,只有您必須在兩個查詢中添加列。 – Sharad 2013-03-13 11:45:37

回答

1

您可以使用CASE聲明,你必須將它添加兩個查詢中添加的第四列等;

--4th Column for both queries, if bin_value is a numeric type 
case when part_value like '%XX' then bin_value 
     else 0 end as fourth_column 

--4th Column for both queries, if bin_value is a string type 
case when part_value like '%XX' then bin_value 
     else '0' end as fourth_column 
相關問題