반응형
SQL Server에서 Null 아님 및 비어 있지 않은 문자열을 확인하는 방법은 무엇입니까?
WHERE
열이 null이 아니고 빈 문자열 ( ''
) 이 아닌지 SQL Server 조건을 어떻게 확인할 수 있습니까?
빈 문자열로 ""만 일치시키려는 경우
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
, 빈 문자열 또는 공백으로 구성된 문자열 이있는 행은 모두이 쿼리에서 제외됩니다.
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
반응형
'Programing' 카테고리의 다른 글
양식없이 문자열 배열을 ASP.NET MVC 컨트롤러에 게시하려면 어떻게해야합니까? (0) | 2020.05.20 |
---|---|
'xmlns'및 'version'과 같은 SVG 매개 변수가 필요합니까? (0) | 2020.05.20 |
Twitter의 typeahead.js 제안은 스타일이 지정되지 않았습니다 (테두리, 투명 배경 등 없음). (0) | 2020.05.20 |
여러 개의 문자열을 다른 여러 개의 문자열로 교체 (0) | 2020.05.20 |
PEP8을 준수하고 E501을 방지하는 매우 긴 문자열을 작성하는 방법 (0) | 2020.05.20 |