Programing

SQL Server에서 Null 아님 및 비어 있지 않은 문자열을 확인하는 방법은 무엇입니까?

lottogame 2020. 5. 20. 07:49
반응형

SQL Server에서 Null 아님 및 비어 있지 않은 문자열을 확인하는 방법은 무엇입니까?


WHERE열이 null이 아니고 빈 문자열 ( '') 이 아닌지 SQL Server 조건을 어떻게 확인할 수 있습니까?


빈 문자열로 ""만 일치시키려는 경우

WHERE DATALENGTH(COLUMN) > 0 

공백으로 만 구성된 문자열을 비어있는 것으로 계산하려면

WHERE COLUMN <> '' 

NULL에서 사용될 때 둘 다 값을 반환하지 않습니다 WHERE. 이것 보다는 오히려 NULL평가할 것이다 .UNKNOWNTRUE

CREATE TABLE T 
  ( 
     C VARCHAR(10) 
  ); 

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

SELECT * 
FROM   T 
WHERE  C <> ''

단일 행만 반환합니다 A. NULL, 빈 문자열 또는 공백으로 구성된 문자열 이있는 행은 모두이 쿼리에서 제외됩니다.

SQL 바이올린


WHERE NULLIF(your_column, '') IS NOT NULL

요즘 (4.5 세 이상) 사람이 쉽게 읽을 수 있도록하기 위해

WHERE your_column <> ''

null 검사를 명시 적으로 유혹하려는 유혹이 있지만 ...

WHERE your_column <> '' 
      AND your_column IS NOT NULL

... @ Martin Smith가 허용 된 답변에서 입증했듯이 실제로 아무것도 추가하지 않습니다 (요즘 개인적으로 SQL null을 완전히 피하므로 어쨌든 나에게는 적용되지 않습니다!).


Coalesce는 null을 기본값으로 접습니다.

COALESCE (fieldName, '') <> ''

이를 수행하는 색인 ​​친화적 인 방법은 다음과 같습니다.

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

행이 많지 않거나이 필드가 색인화되지 않은 경우 다음을 사용할 수 있습니다.

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

기본적으로

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

이 중 하나를 사용하여 null, 공백 및 빈 문자열을 확인할 수 있습니다.

WHERE COLUMN <> '' 

WHERE LEN(COLUMN) > 0

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

그냥 확인하십시오 : where value> ''-null이 아니며 비어 있지 않습니다.

-- 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

참고 URL : https://stackoverflow.com/questions/8660203/how-to-check-for-is-not-null-and-is-not-empty-string-in-sql-server

반응형