Create an account

Very important

  • To access the important data of the forums, you must be active in each forum and especially in the leaks and database leaks section, send data and after sending the data and activity, data and important content will be opened and visible for you.
  • You will only see chat messages from people who are at or below your level.
  • More than 500,000 database leaks and millions of account leaks are waiting for you, so access and view with more activity.
  • Many important data are inactive and inaccessible for you, so open them with activity. (This will be done automatically)


Thread Rating:
  • 576 Vote(s) - 3.44 Average
  • 1
  • 2
  • 3
  • 4
  • 5
How to check for Is not Null And Is not Empty string in SQL server?

#1
How can we check in a SQL Server `WHERE` condition whether the column is not null and not the empty string (`''`)?
Reply

#2
Coalesce will fold nulls into a default:

COALESCE (fieldName, '') <> ''
Reply

#3
If you only want to match "" as an empty string

WHERE DATALENGTH(COLUMN) > 0

If you want to count any string consisting entirely of spaces as empty

WHERE COLUMN <> ''

Both of these will not return `NULL` values when used in a `WHERE` clause. As `NULL` will evaluate as `UNKNOWN` for these rather than `TRUE`.

CREATE TABLE T
(
C VARCHAR(10)
);

INSERT INTO T
VALUES ('A'),
(''),
(' '),
(NULL);

SELECT *
FROM T
WHERE C <> ''

Returns just the single row `A`. I.e. The rows with `NULL` or an empty string or a string consisting entirely of spaces are all excluded by this query.

[SQL Fiddle][1]


[1]:

[To see links please register here]

Reply

#4
An index friendly way of doing this is:

where (field is not null and field <> '')

If there aren't many rows or this field isn't indexed, you can use:


where isnull(field,'') <> ''
Reply

#5
WHERE NULLIF(your_column, '') IS NOT NULL


----------

Nowadays (4.5 years on), to make it easier for a human to read, I would just use

WHERE your_column <> ''

While there is a temptation to make the null check explicit...

WHERE your_column <> ''
AND your_column IS NOT NULL

...as @Martin Smith demonstrates in the accepted answer, it doesn't really add anything (and I personally shun SQL nulls entirely nowadays, so it wouldn't apply to me anyway!).
Reply

#6
Just check: where value > '' -- not null and not empty


-- COLUMN CONTAINS A VALUE (ie string not null and not empty) :
-- (note: "<>" gives a different result than ">")
select iif(null > '', 'true', 'false'); -- false (null)
select iif('' > '', 'true', 'false'); -- false (empty string)
select iif(' ' > '', 'true', 'false'); -- false (space)
select iif(' ' > '', 'true', 'false'); -- false (tab)
select iif('
' > '', 'true', 'false'); -- false (newline)
select iif('xxx' > '', 'true', 'false'); -- true
--
--
-- NOTE - test that tab and newline is processed as expected:
select 'x x' -- tab
select 'x

x' -- newline
Reply

#7
in basic way

SELECT *
FROM [TableName]
WHERE column_name!='' AND column_name IS NOT NULL
Reply

#8
You can use either one of these to check null, whitespace and empty strings.

WHERE COLUMN <> ''

WHERE LEN(COLUMN) > 0

WHERE NULLIF(LTRIM(RTRIM(COLUMN)), '') IS NOT NULL

Reply

#9
For some kind of reason my NULL values where of data length 8. That is why none of the abovementioned seemed to work. If you encounter the same problem, use the following code:

--Check the length of your NULL values
SELECT DATALENGTH(COLUMN) as length_column
FROM your_table

--Filter the length of your NULL values (8 is used as example)
WHERE DATALENGTH(COLUMN) > 8
Reply

#10
check this way
where Ph != '' and Ph = '123456780'

Reply



Forum Jump:


Users browsing this thread:
1 Guest(s)

©0Day  2016 - 2023 | All Rights Reserved.  Made with    for the community. Connected through