I would like to know how to use NULL and an empty string at the same time in a WHERE clause in SQL Server. I need to find records that have either null values or an empty string. Thanks.
-
5There's an OR keyword in SQL.Robert Harvey– Robert Harvey2013-03-27 15:51:57 +00:00Commented Mar 27, 2013 at 15:51
-
21This question does not show any research effort. It is important to do your homework. Tell us what you found and why it didn't meet your needs. This demonstrates that you've taken the time to try to help yourself, it saves us from reiterating obvious answers, and most of all it helps you get a more specific and relevant answer. FAQ.Kermit– Kermit2013-03-27 15:53:03 +00:00Commented Mar 27, 2013 at 15:53
-
1possible duplicate of How to select data from MySQL table where a column is NULL (this was a MySQL question, but it's basically the same answer for t-sql)Michael Berkowski– Michael Berkowski2013-03-27 15:53:30 +00:00Commented Mar 27, 2013 at 15:53
19 Answers
Select *
From Table
Where (col is null or col = '')
Or
Select *
From Table
Where IsNull(col, '') = ''
2 Comments
If you need it in SELECT section can use like this.
SELECT ct.ID,
ISNULL(NULLIF(ct.LaunchDate, ''), null) [LaunchDate]
FROM [dbo].[CustomerTable] ct
You can replace the null with your substitution value.
1 Comment
SELECT *
FROM TableName
WHERE columnNAme IS NULL OR
LTRIM(RTRIM(columnName)) = ''
3 Comments
ltrim and rtrim if the goal is merely to compare to empty string. REASON: if there is ONLY whitespace, a single trim will remove all of it. For example, you don't care whether the comparison fails because what remains is "abc" or " abc".trim functions remove spaces, not whitespace — at least, so says the documentation.To find rows where col is NULL, empty string or whitespace (spaces, tabs):
SELECT *
FROM table
WHERE ISNULL(LTRIM(RTRIM(col)),'')=''
To find rows where col is NOT NULL, empty string or whitespace (spaces, tabs):
SELECT *
FROM table
WHERE ISNULL(LTRIM(RTRIM(col)),'')<>''
1 Comment
Some sargable methods...
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);
And some non-sargable ones...
SELECT *
FROM #T
WHERE IIF(SomeCol <> '',0,1) = 1;
SELECT *
FROM #T
WHERE NULLIF(SomeCol,'') IS NULL;
SELECT *
FROM #T
WHERE ISNULL(SomeCol,'') = '';
Comments
my best solution :
WHERE
COALESCE(char_length(fieldValue), 0) = 0
COALESCE returns the first non-null expr in the expression list().
if the fieldValue is null or empty string then: we will return the second element then 0.
so 0 is equal to 0 then this fieldValue is a null or empty string.
in python for exemple:
def coalesce(fieldValue):
if fieldValue in (null,''):
return 0
good luck
Comments
You could use isnull function to get both null and empty values of a text field:
SELECT * FROM myTable
WHERE isnull(my_nullable_text_field,'') = ''
3 Comments
--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
You can examine '' as NULL by converting it to NULL using NULLIF
--here you set '' to null
UPDATE #T SET NAME = NULLIF(NAME,'')
SELECT * FROM #T
1 JOHN
2 NULL
3 NULL
or you can examine NULL as '' using SELECT ISNULL(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
Comments
SELECT * FROM DBO.AGENDA
WHERE
--IF @DT_START IS NULL OR EMPTY
( ISNULL( @DT_START,'' ) = '' AND DT_START IS NOT NULL ) -- GET ALL DATE
OR --ELSE
( DT_START >= @DT_START ) --FILTER
-- MORE FILTER
SELECT * FROM DBO.AGENDA
WHERE
( ( ISNULL( @DT_START,'' ) = '' AND DT_START IS NOT NULL ) OR ( DT_START >= @DT_START ) )
AND
DT_END < GETDATE()
Comments
if you want to fetch empty and null values from one column then this code apply
select columnname2 from tablename
where columnname2 is null or columnname2 = '';
select columnlist from table you want to fetch then where in which column you want to fetch values of null then write columnname is null and also you want to find empty values then write perticular column name then = '' this will show that empty values from perticular column