我有這樣的代碼在我的select語句在sql server中有沒有與ISNULL相反的功能?要做不是null?
ISNULL(a.PolicySignedDateTime,aq.Amount) AS 'Signed Premium',
但我想看看是否「a.PolicySignedDateTime」不爲空。 有沒有一個簡單的函數來做到這一點,而不涉及使用「if」語句?
乾杯傢伙
我有這樣的代碼在我的select語句在sql server中有沒有與ISNULL相反的功能?要做不是null?
ISNULL(a.PolicySignedDateTime,aq.Amount) AS 'Signed Premium',
但我想看看是否「a.PolicySignedDateTime」不爲空。 有沒有一個簡單的函數來做到這一點,而不涉及使用「if」語句?
乾杯傢伙
你必須使用CASE
SELECT CASE WHEN Field IS NOT NULL
THEN 'something'
ELSE 'something else'
END
試試這個:
SELECT CASE WHEN a.PolicySignedDateTime IS NOT NULL THEN a.PolicySignedDateTime ELSE aq.Amount FROM your joined table
但是.... ISNULL(a.PolicySignedDateTime,aq.Amount)檢查你的領域是空的,所以不是null你得到它的價值。
所以我不太明白,因爲你想用另一種方式。
嗨,是的,基本上我想做「ISNOTNULL(a.PolicySignedDateTime,aq.Amount)」,但它不存在 – Bobby
使用CASE,因爲我已經寫在我的答案;) –
有COALESCE表達式(雖然不是函數https://msdn.microsoft.com/en-us/library/ms190349.aspx)按順序測試參數,並繼續這樣做,直到發現值不爲NULL並返回它。
用法示例:SELECT COALESCE(NULL, NULL, 5)--returns 5
你的情況:
COALESCE(a.PolicySignedDateTime,aq.Amount) AS 'Signed Premium',
使用'CASE'表達:'CASE WHEN a.PolicySignedDateTime IS NOT NULL THEN ... ELSE ... END' –
不是表達 – VeNoMiS