database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 23953 게시물 읽기
No. 23953
쿼리의 결과값이 없을때?
작성자
나승용(jjokobar)
작성일
2005-09-05 17:00ⓒ
2010-08-20 16:54ⓜ
조회수
8,818

select쿼리를 했을때 where절에 해당하는 값이 하나도 없다면

빈칸으로 표시되지 않습니까.

 

그 빈칸이 null도 아니고 '' 도 아니더군요...

그 빈칸을 함수에 적용할 수 있을까요?

예를들어서 nvl(빈칸, 0) 이런식으로요...

 

하려는 작업이 저장 프로시저를 사용하는건데,

쿼리의 결과값이 없을때는 0으로 지정하고

설정한 0값에 수식연산을 하려고 하는거거든요..

 

이 글에 대한 댓글이 총 2건 있습니다.

어디서 사용하시는 건가요? 레코드 카운트를 해서 0이면 처리하는 식으로 하면 될듯 십은데요...

초보님이 2005-09-05 17:31에 작성한 댓글입니다. Edit

 

pl-sql에서 하실 때는

 

begin

select....

into ...

from ...

exception when no_data_found then

v := 0;

...

end;

 

 

이런 식으로 하시는 것이 정상입니다..

 

그런데 만약 그것이 아니라 SQL한방으로 계산 까지 하면서 insert 같은 것을 하고 싶은데 행이 리턴되지 않으면 0으로 하고 싶은 경우가 있을 수 있습니다....

 

이런 경우는 싱글톤 SQL이 확실한 경우(즉 많아야 한행을 리턴하는 경우) 의도적으로 집계함수를 써주는 것도 하나의 방법입니다.(제 생각에는 꽁수라고 생각되는데요... 꽁수가 나쁜것만은 아니니..)

 

자...

백개의 행을 그룹바이 없이 min이나 max하면 한개의 행이 됩니다...

그런데 0개의 행을 그룹바이 없이 min이나 max 하여도 하나의 행이 리턴 됩니다. 해당 행은 집계함수 값이 null로 오구요.

그룹바이 없는 min,max는 having절이 없으면 반드시 하나의 행을 되돌립니다.

 

즉 이런 식입니다...

 

SQL> select dummy from dual where rownum < 1
  2  /

선택된 레코드가 없습니다.

SQL> select dummy,1 ind from dual where rownum < 1
  2  /

선택된 레코드가 없습니다.

SQL> select max(dummy) dummy , 1 ind from dual where rownum < 1
  2  /

D        IND
- ----------
           1

SQL> select nvl(max(dummy),'NNN') dummy,1 ind from dual where rownum < 1
  2  /

DUM        IND
--- ----------
NNN          1

 

김흥수(protokhs)님이 2005-09-05 18:10에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
23957대용량 데이터 환경에서 clob 사용 및 관리에 관한 질문 [2]
궁금
2005-09-05
2860
23956instance level trace를 하려고 합니다. [1]
이은주
2005-09-05
1215
23955[질문]오라클 데이터좀(복원)..살려주세요... [2]
김성훈
2005-09-05
1225
23953쿼리의 결과값이 없을때? [2]
나승용
2005-09-05
8818
23952[질문] 쿼리문 응답시간이 너무 느립니다~!!! orz... [4]
최성화
2005-09-05
1353
23951export시 백업시 데이타파일이 백업되는 시점에 대해 [3]
누리
2005-09-05
1403
23950[질문]Oracle 10g 책소개 부탁합니다. [2]
아폴론
2005-09-05
1161
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다