문제

테이블에 빈 값이 약간있어 IF 문에서 잡을 수없는 것 같습니다.

난 노력 했어

IF @value = '' 그리고 if @value = NULL 그리고 어느 누구도 빈 값을 잡지 않습니다. 바르 차가 전적으로 공백인지 여부를 테스트 할 수있는 방법이 있습니까?

아하! 내가 널 잘못을 테스트하고있는 것으로 밝혀졌습니다. 감사.

도움이 되었습니까?

해결책

NULL과 비교하려면 IS NULL 키워드를 사용하십시오.

--Generic example:
SELECT *
FROM MY_TABLE
WHERE SOME_FIELD IS NULL;

--Instead of    

SELECT *
FROM MY_TABLE
WHERE SOME_FIELD = NULL;

다른 팁

ltrim(rtrim(isNull(@value,''))) = ''

(ltrim (rtrim (@Value)) = ''트릭을 수행해야합니다.

길이 (@Value) = 0 또는 @Value가 null입니다.

여기서 길이 (rtrim (ltrim (yourcolumnname)) = 0 또는 yourcolumnname is null

오히려 과도한 문자열 조작을 수행합니다 LTRIM 그리고 RTRIM, 첫 번째 "비 공간"표현식을 검색하십시오.

SELECT
            *
    FROM
            [Table]
    WHERE
            COALESCE(PATINDEX('%[^ ]%', [Value]), 0) > 0

방금 테스트를했고 흥미로운 것을 알았습니다. 나는 다음과 같이 쿼리를 썼습니다.

SELECT *
FROM TableA
WHERE Val IS NOT NULL
AND LEN(RTRIM(LTRIM(Val))) > 0

그러나 실제로 NULL을 확인할 필요는 없습니다. 값을 다듬은 후 길이를 점검하기 만하면됩니다.

SELECT *
FROM TableA
WHERE LEN(RTRIM(LTRIM(Val))) > 0

이것은 잡초를 널로 내밀고 공백 만있는 컬럼을 선택합니다.

결과적으로 SQL Server가 후행 공백을 무시하기 때문에 값을 다듬을 필요가 없습니다. 따라서 실제로 필요한 모든 것이 다음과 같습니다. LEN (VAL)> 0에서 Tablea에서 선택하십시오.

여러 공간이있는 필드가있을 수 있으므로 ( '')를 다듬는 경우 더 나은 결과를 얻을 수 있습니다.

where ltrim(yourcolumnname) = ''
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top