在我們的系統中,每個客戶都有一個稱呼(0),有些人還有另外的稱呼(22)。我需要做的是將沒有22的默認值改爲0。我想利用這個case語句來實現:T-SQL無法獲得CASE語句僅選擇一個替代方案
select distinct a.customer_no,
case when b.sal_code = '22' then '22'
when b.sal_code <> '22' then '0'
else '0'
end as salutation_no
from t_customer a
join t_sal b
on a.customer_no = b.customer_no
where a.customer_no in (1734379, 120706)
但是不是得到22,爲客戶提供22S和0對於那些不這樣做的,我得到的所有客戶0,併爲那些額外的22誰也有:
customer_no salutation_no
120706 0
120706 22
1734379 0
我認爲T-SQL的不等於運算符是「!=」請參閱此[post](https://msdn.microsoft.com/en-us/library/ms190296.aspx) – vmachan
錯誤<>很好在TSQL中,但你也可以使用!=(我更喜歡<>) –
DISTINCT不僅僅是一列,它適用於所有選定的列。如果有兩個具有不同'b'值的'a'值,'SELECT DISTINCT a,b'會給出兩行。請參閱@Szymon的解決方案,它應該適合您。 – EvilBob22