本文介紹了如何從SQL Server2008的查詢結果中刪除的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我有一個包含59列和超過17K行的表。許多行的某些列中有NULL
。
我要刪除NULL
,以便查詢返回空格(''
)而不是NULL
。
我是否可以運行一些更新函數,將所有NULL
替換為''
?
使用SQL Server 2008R2 Management Studio。
UPDATE my_table
SET column_1 = REPLACE (column_1,NULL,'')
但要對所有59列執行此操作將永遠耗費時間!
團隊,有什么訣竅?
推薦答案
使用SQL標準COALESCE
:
UPDATE my_table
SET column_1 = COALESCE(column_1,'')
, column_2 = COALESCE(column_2,'')
...
WHERE column_1 IS NULL OR
column_2 IS NULL OR
... -- avoid empty updates
;
然后使用ALTER TABLE ...
將NOT NULL
約束添加到不應包含空值的所有列,以禁止重新引入空值。
不要使用,它基本上是某些RDBMS中標準ISNULL
COALESCE
的復制–在其他RDBMS中不可用。(嗯,有一些細微的區別,read the manual for details或even more detail here。)
當然,空字符串(''
)僅對字符串類型有效。例如,不適用于數字類型。
這篇關于如何從SQL Server2008的查詢結果中刪除的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,