필드하나를 where에 2개 넣어야될때 0 8 7,803

by db초보 [DB 기타] mssql [2016.04.07 09:12:13]


5.png (3,656Bytes)
4.png (2,705Bytes)

필드명 addr이 1이고  addr2가 null이거나 빈칸일경우를 알고싶은데.. 이중 select해야되나요?

맨위 이미지 : 전체 테이블

마지막 이미지 : SELECT * FROM aaa WHERE addr='1' AND addr2='' OR addr2 IS NULL

 

SELECT * FROM (SELECT * FROM aaa WHERE addr2 IS NULL) WHERE addr2=''

에러메시지

Error Code : 1248
Every derived table must have its own alias

SELECT * FROM aaa WHERE addr2='' AND (SELECT * FROM aaa WHERE addr2 IS NULL)

에러메시지

Error Code : 1241
Operand should contain 1 column(s)

 

 

by 창조의날개 [2016.04.07 09:22:45]

오라클은 ''와 NULL은 같은 NULL로 봅니다..

그러므로 만약 addr2에 값이 없는 로우를 찾으려면 

addr2 is null만 WHERE 조건에 넣으시면 됩니다.

에러가 나신다면 어떤 에러인지 에러코드를 알려주세요..


by db초보 [2016.04.07 09:29:15]

글 올린것 수정했어요.. 오류메시지하고 테이블+빈칸+null select한것 스샷찍어서 올렸어요


by 창조의날개 [2016.04.07 09:57:11]

SELECT * FROM aaa WHERE addr='1' AND (addr2='' OR addr2 IS NULL);

by 마농 [2016.04.07 09:40:12]

오라클과 달리 MSSQL 에서 '' 과 Null 은 다릅니다.
OR 조건으로 체크하세요.
 WHERE addr2 IS NULL OR addr2 = ''


by db초보 [2016.04.07 09:56:23]

아..제가 질문을 잘못드렸네요... 하나를 빼먹어서..

필드가 3개를 했어야됬는데...

addr이 1이면서 addr2가 빈칸이나 null일경우 밑에처럼 했더니 addr이 2도 나오네요..

이것때문에 이중select해야되는지 아니면 다른걸 해야되는지 질문이었는데..

SELECT * FROM aaa WHERE addr='1' AND addr2='' OR addr2 IS NULL

 

질문글 수정했어요..스크린샷 봐주세요~


by 마농 [2016.04.07 09:59:21]

OR 조건은 괄호로 감싸줘야 합니다.

 WHERE addr = '1' AND (addr2 = '' OR addr2 IS NULL)

OR 나 괄호 사용이 싫으면...

 WHERE addr = '1' AND ISNULL(addr2, '') = ''


by db초보 [2016.04.07 10:03:41]

밑에 괄호 사용안하는건 에러가 나오네요.. 위에건 잘되요~ 고맙습니다

isnull붙일경우

에러메시지

Error Code : 1582
Incorrect parameter count in the call to native function 'ISNULL'

is null 띄어서 할 경우

에러메시지

Error Code : 1064
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'IS NULL(addr2, '') = ''
 LIMIT 0, 1000' at line 1
 


by 마농 [2016.04.07 10:07:44]

MSSQL 이 아니라 MySQL 이군요.

IFNULL 사용하세요.

ORACLE : NVL

MSSQL : ISNULL

MySQL : IFNULL

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입