programing

SQL Server에서 문자열이 Null이 아니거나 비어 있지 않은지 확인하는 방법

sourcejob 2023. 4. 19. 22:58
반응형

SQL Server에서 문자열이 Null이 아니거나 비어 있지 않은지 확인하는 방법

SQL Server 체크인 방법WHERE컬럼이 null이 아닌지와 빈 문자열이 아닌지를 나타냅니다( ).'')?

빈 문자열로 "만 일치시키려면

WHERE DATALENGTH(COLUMN) > 0 

공백으로 구성된 문자열을 모두 빈 문자열로 카운트하는 경우

WHERE COLUMN <> '' 

둘 다 돌아오지 않습니다.NULL에서 사용되는 경우의 값WHERE절을 클릭합니다.~하듯이NULL로서 평가하다UNKNOWN보다 이런 것들을 위해서TRUE.

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

무효수표를 분명히 하고 싶은 유혹이 있지만...

WHERE your_column <> '' 
      AND your_column IS NOT NULL

@Martin Smith가 수용된 답변에서 보여준 것처럼, 실제로는 아무것도 추가되지 않습니다(그리고 저는 개인적으로 SQL Null을 완전히 피하고 있기 때문에, 어쨌든 저는 적용되지 않습니다).

기본적인 방법으로

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

병합은 null을 기본값으로 접습니다.

COALESCE (fieldName, '') <> ''

인덱스 친화적인 방법은 다음과 같습니다.

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

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

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

확인만 하면 됩니다.여기서 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

어떤 이유로 인해 데이터 길이가 8인 NULL 값이 지정됩니다.그것이 바로 위에서 언급한 것 중 어느 것도 효과가 없는 것처럼 보인 이유이다.같은 문제가 발생했을 경우는, 다음의 코드를 사용해 주세요.

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

Ph != ' 및 Ph = '123456780'인 경우 이 방법을 확인한다.

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

반응형