MySql查詢在select中用空stringreplaceNULL
你如何用空stringreplaceselect中的NULL值? 輸出“NULL”值看起來不太專業。
這是非常不尋常的,基于我的語法,我期望它的工作。 希望解釋為什么它沒有。
select CASE prereq WHEN (prereq IS NULL) THEN " " ELSE prereq end from test;
什么樣的原始表看起來像什么,我想要什么,以及什么樣的實際打印:
string format、original wanted what actually prints -------- ------ --------------------- value1 value1 NULL NULL value2 value2 NULL NULL
正如你所看到的,它與我想要的是相反的,因此我嘗試翻轉IS NULL到IS NOT NULL,當然那沒有修復它,也嘗試交換case,哪個沒有工作的位置。
編輯:看來下面給出的三個解決scheme都做這個任務。 問候
select if(prereq IS NULL ," ",prereq ) from test select IFNULL(prereq,"") from test select coalesce(prereq, '') from test
如果你真的必須輸出每個值,包括NULL值:
select IFNULL(prereq,"") from test
java replace函數、SELECT COALESCE(prereq, '') FROM test
合并將從左向右返回傳遞給它的第一個非空參數。 如果所有的參數都是null,它將返回null,但是我們在那里強制一個空string,所以不會返回空值。
另請注意,標準SQL支持COALESCE運算符。 這不是IFNULL的情況。 所以使用前者是一個好習慣。 此外,請記住,COALESCE支持2個以上的參數,并且會迭代它們直到find非空符合。
嘗試下面;
select if(prereq IS NULL ," ",prereq ) from test
原來的forms幾乎是完美的,你只需要在CASE之后省略prereq :
MySQL null,SELECT CASE WHEN prereq IS NULL THEN ' ' ELSE prereq END AS prereq FROM test;
其中一些build立在function應該工作:
Coalesce Is Null IfNull
試試COALESCE 。 它返回第一個非NULL值。
SELECT COALESCE(`prereq`, ' ') FROM `test`
試試這個,這個也應該擺脫那些空行:
replace?SELECT prereq FROM test WHERE prereq IS NOT NULL;
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态