[SQL] 어떻게하지 널 확인하고 SQL 서버에 빈 문자열은 아닌가하는?
SQL어떻게하지 널 확인하고 SQL 서버에 빈 문자열은 아닌가하는?
우리는 어떻게 조건이 열이 널 (null)이 아닌 빈 문자열 ( '') 여부는 SQL 서버에서 확인할 수 있나요?
해결법
-
==============================
1.당신은 단지 빈 문자열로 ""일치 시키려면
당신은 단지 빈 문자열로 ""일치 시키려면
WHERE DATALENGTH(COLUMN) > 0
당신은 빈으로 공간의 전체로 구성된 임의의 문자열을 계산하려면
WHERE COLUMN <> ''
WHERE 절에서 사용하는 경우이 두 NULL 값을 반환하지 않습니다. NULL이 아닌 TRUE에 대한 UNKNOWN으로 평가합니다 것처럼.
CREATE TABLE T ( C VARCHAR(10) ); INSERT INTO T VALUES ('A'), (''), (' '), (NULL); SELECT * FROM T WHERE C <> ''
반환 그냥 단일 행 A. 즉, NULL 또는 빈 문자열 또는 완전히 공간으로 구성된 문자열 행은이 모든 쿼리에서 제외됩니다.
SQL 바이올린
-
==============================
2.
WHERE NULLIF(your_column, '') IS NOT NULL
요즘 (4.5 년)에, 쉽게 인간이 읽을 수 있도록 그냥 사용하는 것
WHERE your_column <> ''
널 검사가 명시 적으로 만들 수있는 유혹이 있지만 ...
WHERE your_column <> '' AND your_column IS NOT NULL
@Martin 스미스가 허용 대답에 보여줍니다으로 ..., 정말 아무것도 추가하지 않습니다 (그리고 나는 개인적으로 피하다 SQL 널 완전히 요즘, 그래서 어쨌든 나에게 적용되지 않는다!).
-
==============================
3.합체는 디폴트로 null을 접을 것이다 :
합체는 디폴트로 null을 접을 것이다 :
COALESCE (fieldName, '') <> ''
-
==============================
4.기본 방법
기본 방법
SELECT * FROM [TableName] WHERE column_name!='' AND column_name IS NOT NULL
-
==============================
5.이 일의 인덱스 친화적 인 방법은 다음과 같습니다
이 일의 인덱스 친화적 인 방법은 다음과 같습니다
where (field is not null and field <> '')
가 많지 않은 행 또는이 필드가 인덱싱되지 않은 경우, 당신은 사용할 수 있습니다 :
where isnull(field,'') <> ''
-
==============================
6.당신은 널 (null), 공백 및 빈 문자열을 확인하려면 다음 중 하나를 사용할 수 있습니다.
당신은 널 (null), 공백 및 빈 문자열을 확인하려면 다음 중 하나를 사용할 수 있습니다.
WHERE COLUMN <> '' WHERE LEN(COLUMN) > 0 WHERE NULLIF(LTRIM(RTRIM(COLUMN)), '') IS NOT NULL
-
==============================
7.그냥 확인 : 여기서 값> ''- null이 아니 비어 있지
그냥 확인 : 여기서 값> ''- 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
from https://stackoverflow.com/questions/8660203/how-to-check-for-is-not-null-and-is-not-empty-string-in-sql-server by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 이 SQL 서버에 존재하는 경우에만 어떻게 외래 키 제약 조건을 삭제합니까? (0) | 2020.06.20 |
---|---|
[SQL] SQL Server 데이터베이스에있는 모든 데이터를 삭제 (0) | 2020.06.20 |
[SQL] 어떻게 삽입 SQL 형식으로 테이블의 모든 데이터를 내보낼? (0) | 2020.06.20 |
[SQL] 데이터베이스에 "이벤트 반복"표현하는 가장 좋은 방법은 무엇입니까? (0) | 2020.06.20 |
[SQL] 어떻게 SQL을 사용하여 최근 24 시간 레코드를 선택하려면? (0) | 2020.06.20 |