WHERE
열이 빈 문자열이 아니고 빈 문자열 ( ''
) 이 아닌지 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, '') <> ''
답변
기본적으로
SELECT *
FROM [TableName]
WHERE column_name!='' AND column_name IS NOT NULL
답변
이를 수행하는 색인 친화적 인 방법은 다음과 같습니다.
where (field is not null and field <> '')
행이 많지 않거나이 필드가 색인화되지 않은 경우 다음을 사용할 수 있습니다.
where isnull(field,'') <> ''
답변
이 중 하나를 사용하여 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
