如何在SQL中使用NULL或空string
我想知道如何在SQL Server的WHERE
子句中同时使用NULL和一个空string。 我需要查找具有空值或空string的logging。 谢谢。
Select * From Table Where (col is null or col = '')
要么
Select * From Table Where IsNull(col, '') = ''
你可以简单地做到这一点:
SELECT * FROM yourTable WHERE yourColumn IS NULL OR yourColumn = ''
在select查询中,有人可以这样使用。
SELECT ct.ID, ISNULL(NULLIF(ct.LaunchDate, ''), null) [LaunchDate] FROM [dbo].[CustomerTable] ct
你可以用你的替代值replacenull
。
SELECT * FROM TableName WHERE columnNAme IS NULL OR LTRIM(RTRIM(columnName)) = ''
查找col为NULL
行,空string或空格(空格,制表符):
SELECT * FROM table WHERE ISNULL(LTRIM(RTRIM(col)),'')=''
要findcol NOT NULL
,空string或空格(空格,制表符)的行:
SELECT * FROM table WHERE ISNULL(LTRIM(RTRIM(col)),'')<>''
一些可靠的方法…
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);
还有一些不可靠的
SELECT * FROM #T WHERE IIF(SomeCol <> '',0,1) = 1; SELECT * FROM #T WHERE NULLIF(SomeCol,'') IS NULL; SELECT * FROM #T WHERE ISNULL(SomeCol,'') = '';
您可以使用isnull
函数来获取文本字段的空值和空值:
SELECT * FROM myTable WHERE isnull(my_nullable_text_field,'') = ''
这是丑陋的MSSQL:
CASE WHEN LTRIM(RTRIM(ISNULL([Address1], ''))) <> '' THEN [Address2] ELSE '' END
SELECT * FROM Table WHERE column like '' or column IS NULL OR LEN(column) = 0
--setup IF OBJECT_ID('tempdb..#T') IS NOT NULL DROP TABLE #T; CREATE TABLE #T(ID INT NOT NULL IDENTITY(1,1) PRIMARY KEY, NAME VARCHAR(10)) INSERT INTO #T (Name) VALUES('JOHN'),(''),(NULL); SELECT * FROM #T 1 JOHN 2 -- is empty string 3 NULL
您可以通过使用NULLIF
将其转换为NULL
来检查NULL
--here you set '' to null UPDATE #T SET NAME = NULLIF(NAME,'') SELECT * FROM #T 1 JOHN 2 NULL 3 NULL
或者你可以使用SELECT ISNULL(NULL,'')
来检查NULL
为''
-- here you set NULL to '' UPDATE #T SET NAME = ISNULL(NULL,'') WHERE NAME IS NULL SELECT * FROM #T 1 JOHN 2 -- is empty string 3 -- is empty string --clean up DROP TABLE #T
我最好的解决scheme
WHERE COALESCE(char_length(fieldValue), 0) = 0
COALESCE返回expression式列表()中的第一个非空expr。
如果fieldValue为null或空string,那么:我们将返回第二个元素,然后返回0。
所以0等于0,那么这个fieldValue是null或空string。
以python为例:
def coalesce(fieldValue): if fieldValue in (null,''): return 0
祝你好运
在sproc中,你可以使用下面的条件:
DECLARE @USER_ID VARCAHR(15)=NULL --THIS VALUE IS NULL OR EMPTY DON'T MATTER IF(COALESCE(@USER_ID,'')='') PRINT 'HUSSAM'
通过这个function:
ALTER FUNCTION [dbo].[isnull](@input nvarchar(50),@ret int = 0) RETURNS int AS BEGIN return (case when @input='' then @ret when @input is null then @ret else @input end) END
并使用这个:
dbo.isnull(值,0)