我有一個整合型項目中,我選擇列經常有這樣的代碼替換的東西:SQL Server查詢用於檢查空字符串並用其它
select
CASE MyColumn
WHEN '' THEN '&'
ELSE MyColumn
END
有沒有更簡單的方法呢?有點像nulls合併? 我發現查詢真的很難閱讀等
感謝
我有一個整合型項目中,我選擇列經常有這樣的代碼替換的東西:SQL Server查詢用於檢查空字符串並用其它
select
CASE MyColumn
WHEN '' THEN '&'
ELSE MyColumn
END
有沒有更簡單的方法呢?有點像nulls合併? 我發現查詢真的很難閱讀等
感謝
我想你可以試一下像這樣...
COALESCE(NULLIF(MyColumn,''), '&')
這在功能上並不相同......原來的實現會保留一個NULL值,用''&'替換NULL。 –
斑斑斑斑,ops @Vishal和我完全一樣的回答:) –
我猜在這種情況下,CASE語句應該可以做這個工作。 –
從@邁克爾Fredrickson的評論繼
NULLIF(COALESCE(NULLIF(COALESCE(MyColumn,'###'),''), '&'),'###')
將###替換爲您知道不會出現在字段中的任何值。不知道它比案例陳述更容易閱讀。
這應該工作,並保持空值:
SELECT COALESCE(NULLIF(MyColumn, ''), NULLIF(MyColumn + '&', ''), MyColumn)
見 '接受',回答以下。實際上,我不需要保留空值,而最終的主要目標是簡化查詢,以便在不重複'MyColumn'的情況下閱讀更容易。 – Raymond