2017-10-14 9 views
0

name_durchgefuehrt, name_abgelehntname_offen의 ID와 함께 열의 값을 포함하는 행만 선택하려고합니다.여러 WHERE NOT NOT NULL 쿼리가 빈 행을 반환합니다.

그러나이 쿼리는 값이있는 모든 열을 출력합니다. 여기

내 쿼리입니다 :

SELECT id, name_durchgefuehrt, name_abgelehnt, name_offen 
FROM dashboard 
WHERE 
    name_durchgefuehrt IS NOT NULL 
    AND name_abgelehnt IS NOT NULL 
    AND name_offen IS NOT NULL 

결과 :

enter image description here


편집 :

예 나는 당신의 대부분을위한 쉬운 질문입니다 알고 그러나 나는 VA에 대한 잘못된 이해를 가졌다. lue 'Null'과 나는 이것을 이렇게해야만한다고 생각했다.

어쨌든 모든 답변에 감사드립니다.

+1

위대한 문자입니다. 질문 있습니까? [매우 간단한 SQL 쿼리 인 것처럼 보이기 위해 왜 MCVE를 제공해야합니까?] (http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for- what-to-the-me-to-be-a-very-simple-sql-query) – Strawberry

+2

당신이 요구 한 것을 정확하게 보여주는 쿼리. 질문이 뭐야? – alroc

+1

NULL은 빈 문자열과 다릅니다. –

답변

2

NULL'' (빈 문자열)이 아니며, IS NULL으로 테스트 할 수있는 특별한 상태입니다.

SELECT id,name_durchgefuehrt,name_abgelehnt,name_offen 
FROM dashboard 
WHERE 
    name_durchgefuehrt <> '' 
    AND 
    name_abgelehnt <> '' 
    AND 
    name_offen <> '' 
+1

으. 왜 'COALESCE'인가? 'name_durchgefuehrt <> '''는 널이나 빈 문자열을 반환하지 않습니다. –

+1

@MartinSmith 젠장, 네 말이 맞아, 완전히 잊어 버렸어, 최근에 조금씩 'COALESCE'를 사용 했어. 업데이트 된 u_u – Blag

+0

해답을 가져 주셔서 감사합니다! 이것은 나를 위해 작동합니다! – Ck2513

1

당신의 값이 빈 문자열도 아닌 경우 당신은 그것은`필요하지 널

, 확인해야
1
내가 좋아하는 것

:

그러나 <> ''은 모두 NULL''

그래서 제외됩니다 문자열이 비어있는 공백으로 구성 될 수도 있음을주의하십시오. 따라서 공백을 없애는보다 일반적인 방법은 다음과 같습니다.

SELECT id, name_durchgefuehrt, name_abgelehnt, name_offen 
FROM dashboard 
WHERE TRIM(name_durchgefuehrt) <> '' AND 
     TRIM(name_abgelehnt) <> '' AND 
     TRIM(name_offen) <> '' IS NOT NULL; 

정규 표현식을 사용할 수 있습니다. 예를 들어 공백 문자 집합이있는 경우

SELECT id, name_durchgefuehrt, name_abgelehnt, name_offen 
FROM dashboard 
WHERE name_durchgefuehrt regexp '[^[:space]]' AND 
     name_abgelehnt regexp '[^[:space]]' AND 
     name_offen regexp '[^[:space]]';