我已經持有兩國IDS與其他一些列CASE語句替代
爲樣本像
Table(Id int,Title varchar(250), WebCountryId int, CountryId int)
的Web國家ID 1000是英國和CountryId = 5沿着表是英國。 (另外countryid = 1是未知的,認爲是英國)。 (兩個countryid是由兩個不同的數據庫驅動的,這兩個數據庫都有自己的國家列表) 我有一個使用此表的視圖,我試圖創建一個字段以確定該行是否爲英國。
這是我的那一刻,但該位戈納在視圖
SELECT CountryId,WebCountryId,
(CASE WHEN (T.WebCountryId IS NULL AND T.CountryId IS NULL) THEN 1
WHEN (T.WebCountryId IS NOT NULL AND T.WebCountryId <> 1000) THEN 0
WHEN (T.CountryId IS NOT NULL AND Enquiry.CountryId NOT in(1,5)) THEN 0
WHEN (T.WebCountryId IS NULL AND T.CountryId in(2,5)) THEN 1 END)as Uk
FROM Table T
是否有任何其他的方式來實現這一目標而無需使用case
使用嗎?
這就是爲什麼你不應該給NULL一個隱含值,我只是有一個值爲每個選項,而不是處理空值。 –
@ TMcKeown:這是我在一個非常舊的數據庫中工作的時候遇到的問題,在這個數據庫中沒有人知道它爲什麼允許NULL) –