我試圖根據另一列(Selection
和IsAssetCode
)推導出一列(Level5
)。使用Case語句時獲取空值
Selection
列有兩種類型的條目 - 「所有資產」和「核心資產」,IsAssetCode
爲0
或1
。 IsAssetCode = 0
對應於「所有資產」,並且1
是「核心資產」。
我在嘗試分離核心和非核心資產,但我在Level5
中獲得了「所有資產」的額外行。
Select *,
Case when Selection ='All Assets' then 'Other Assets'
When (IsAssetCode =1 and Selection <> 'ALL ASSETS') THEN Selection
End as Level5
From ((Select (columns) from tbl where IsAssetCode = 0
EXCEPT
SELECT (Columns) FROM tbl where IsAssetCode = 1)
Union
Select (column) from tbl where IsAssetCode = 1
)
輸入數據:
B1 Black All Assets 0 B1 White All Assets 0 B1 Red All Assets 0 B1 Black Core Asset 1
所需的輸出:
B1 Black Core Asset 1 B1 White Other Asset 2 B1 Red Other Asset 2
編輯你的問題,(1)標籤與正在使用的數據庫; (2)提供樣本數據和期望的結果。另外,你的SQL查詢在語法上不是正確的('case'上沒有'end')。而'NULL'是列中的值,而不是行的狀態。 –