2012-03-26 91 views
10

何要這樣做? 使用select聲明可以寫什麼查詢,其中所有的空值應該用123代替?使用select語句替換sql中的空值?

我知道我們可以這樣做使用 更新表名set字段名=「123」其中fieldname爲空;

但無法使用選擇聲明。

+0

更新表名組字段名= 「123」,其中字段名爲空; – Thompson 2012-03-26 18:22:23

+0

我知道這個函數,但是如何用select語句替換null值呢? – Thompson 2012-03-26 18:23:34

回答

24

你有對很多的選擇 IFNULL(field, 0)會返回一個0替換MySQL中的NULL值:

CASE

select case 
    when fieldname is null then '123' 
    else fieldname end as fieldname 
from tablename 

COALESCE

select coalesce(fieldname, '123') as fieldname 
from tablename 

IFNULL

select ifnull(fieldname, '123') as fieldname 
from tablename 
+0

是的,這就是我正在尋找的。謝謝。 也可以通過使用select語句編寫查詢,我們希望所有的NULL值都是最後的使用Order By – Thompson 2012-03-26 18:45:12

+1

此答案對其他數據庫也很有用,例如,COALESCE和IFNULL都存在於SQLite中,並且按預期工作 – epicsmile 2014-06-03 19:28:36

+0

注意:IFNULL僅適用於MySql如果您使用的是MS Access或SQL Server,那麼你正在尋找ISNULL,如果你使用的是Oracle,那麼你正在尋找NVL。來源:https://www.w3school s.com/sql/sql_isnull.asp – Tyler 2017-03-29 12:15:04

0

需要UPDATE語句來更新表中的數據。您不能使用SELECT語句來執行此操作。

+1

我想他想修改查詢的輸出,而不是實際的數據。 – Dave 2012-03-26 18:26:39

+0

啊,似乎我誤解了這個問題然後:-( – Exupery 2012-03-26 18:44:37

+0

它確定Exupery。我們從RedFilter的答案 – Thompson 2012-03-26 18:46:41

1

我認爲你正在尋找的IFNULL函數當現場返回null