![](/img/trans.png)
[英]How to update the values of a column in a select statement based on the values of anothr column?
[英]How to check a column values is null or not in select statement
我是SQL Server的新手,我想在select語句中驗證列值是NULL還是空。
select語句是:
SELECT COM_TYPE, COM_IN_CHARGE_POSITION
FROM TABLE_01
如果COM_TYPE
值為null或為空,我想將COM_TYPE_OTHERS
值作為COM_TYPE
,其方式與COM_IN_CHARGE_POSITION
相同。
只是如果COM_TYPE和COM_IN_CHARGE_POSITION為空或空,我想從其他兩列中獲取值。
任何人都可以幫我解決這個問題嗎?
我假設空白為NULL
。 在這種情況下,您只需要coalesce()
:
select coalesce(COM_TYPE, COM_TYPE_OTHERS, COM_IN_CHARGE_POSITION, COM_IN_CHARGE_POSITION_OTHERS) as effective_COM_TYPE
coalesce()
函數接受第一個非NULL
參數。 如果值可以是空字符串或除NULL
之外還有空格的字符串,則建議使用case
表達式。
COALESCE
函數可以檢查哪一列首先是非NULL,但如果要檢查,則為null
或為空,您可以嘗試使用CASE WHEN
SELECT CASE WHEN COM_TYPE IS NULL OR COM_TYPE = '' THEN COM_TYPE_OTHERS
ELSE COM_TYPE END AS COM_TYPE,
CASE WHEN COM_IN_CHARGE_POSITION IS NULL OR COM_IN_CHARGE_POSITION = '' THEN COM_IN_CHARGE_POSITION_OTHERS
ELSE COM_IN_CHARGE_POSITION END AS COM_IN_CHARGE_POSITION,
FROM TABLE_01
您可以使用COALESCE()
或ISNULL()
OR CASE WHEN
語句
SELECT COALESCE( COM_TYPE, COM_TYPE_OTHERS ) AS COM_TYPE,
COALESCE (COM_IN_CHARGE_POSITION , COM_IN_CHARGE_POSITION_OTHERS) AS COM_IN_CHARGE_POSITION
FROM TABLE_01
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.