pos*_*han 113 sql sql-server null where
我想知道如何WHERE在SQL Server 的子句中同时使用NULL和空字符串.我需要查找具有空值或空字符串的记录.谢谢.
cod*_*ger 204
Select *
From Table
Where (col is null or col = '')
Run Code Online (Sandbox Code Playgroud)
要么
Select *
From Table
Where IsNull(col, '') = ''
Run Code Online (Sandbox Code Playgroud)
Pra*_*iar 26
你可以这样做:
SELECT *
FROM yourTable
WHERE yourColumn IS NULL OR yourColumn = ''
Run Code Online (Sandbox Code Playgroud)
Sam*_* R. 22
如果你需要它在SELECT部分可以使用这样.
SELECT ct.ID,
ISNULL(NULLIF(ct.LaunchDate, ''), null) [LaunchDate]
FROM [dbo].[CustomerTable] ct
Run Code Online (Sandbox Code Playgroud)
你可以用null替换值替换.
Joh*_*Woo 15
SELECT *
FROM TableName
WHERE columnNAme IS NULL OR
LTRIM(RTRIM(columnName)) = ''
Run Code Online (Sandbox Code Playgroud)
小智 8
要查找col所在的行NULL,请使用空字符串或空格(空格,制表符):
SELECT *
FROM table
WHERE ISNULL(LTRIM(RTRIM(col)),'')=''
Run Code Online (Sandbox Code Playgroud)
要查找col所在的行NOT NULL,请使用空字符串或空格(空格,制表符):
SELECT *
FROM table
WHERE ISNULL(LTRIM(RTRIM(col)),'')<>''
Run Code Online (Sandbox Code Playgroud)
一些可靠的方法......
SELECT *
FROM #T
WHERE SomeCol = '' OR SomeCol IS NULL;
SELECT *
FROM #T
WHERE SomeCol = ''
UNION ALL
SELECT *
FROM #T
WHERE SomeCol IS NULL;
SELECT *
FROM #T
WHERE EXISTS ((SELECT NULL UNION SELECT '') INTERSECT SELECT SomeCol);
Run Code Online (Sandbox Code Playgroud)
还有一些不可思议的......
SELECT *
FROM #T
WHERE IIF(SomeCol <> '',0,1) = 1;
SELECT *
FROM #T
WHERE NULLIF(SomeCol,'') IS NULL;
SELECT *
FROM #T
WHERE ISNULL(SomeCol,'') = '';
Run Code Online (Sandbox Code Playgroud)
我最好的解决方案:
WHERE
COALESCE(char_length(fieldValue), 0) = 0
Run Code Online (Sandbox Code Playgroud)
COALESCE 返回表达式 list() 中的第一个非空 expr。
如果 fieldValue 为 null 或空字符串,则:我们将返回第二个元素,然后是 0。
所以 0 等于 0 那么这个 fieldValue 是一个 null 或空字符串。
以python为例:
def coalesce(fieldValue):
if fieldValue in (null,''):
return 0
Run Code Online (Sandbox Code Playgroud)
祝你好运