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
운영게시판
최근게시물
DB2 Q&A 1668 게시물 읽기
No. 1668
결과값이 없을때 특정 select 실행법
작성자
윤동민(tersa01)
작성일
2008-07-02 10:09ⓒ
2008-07-02 10:10ⓜ
조회수
10,835

SELECT *

FROM (

SELECT '1' AS ORDER, COUNT(*) CNT, CON_IP

   FROM SP_HLOGIN

   WHERE EMPNO = ?

     AND SUBSTR(HEX(CON_DATE), 1, 8) >= ?

     AND SUBSTR(HEX(CON_DATE), 1, 8) <= ?

   GROUP BY CON_IP

   UNION ALL

   SELECT '2' AS ORDER, 0 AS CNT, '' AS CON_IP

   FROM SYSIBM.SYSDUMMY1) T

ORDER BY ORDER 

WITH UR



안녕하세요 ^^ 이렇게 또 질문을 올리네요.


위의 쿼리를 보면  order 값이 1일때 와 2일떄로 나뉘는데요..


2를 만들어둔 이유는 그래프를 작업을 하는데 1에 값이 하나도 없을때 그래프가 창에 오류가 나버리더라고요. 그래서

의무적으로 2를 생성해서 같이 출력하게 되는데요.


제가 원하는건.. 1값이 없을경우에만 2가 실행되게 하고싶거든요. 아.. 디비는 아면 할수록 어려워 지네요 ^^

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

이렇게 해보는것도 ..



SELECT ORDER, CNT, CON_IP

FROM (

SELECT T.*, sum(order) over() sm

FROM (

SELECT 1 AS ORDER, COUNT(*) CNT, CON_IP

   FROM SP_HLOGIN

   WHERE EMPNO = ?

     AND SUBSTR(HEX(CON_DATE), 1, 8) >= ?

     AND SUBSTR(HEX(CON_DATE), 1, 8) <= ?

   GROUP BY CON_IP

   UNION ALL

   SELECT 2 AS ORDER, 0 AS CNT, '' AS CON_IP

   FROM SYSIBM.SYSDUMMY1

) T) T 

where order = (case when sm > 2 then 1 else 2 end);


조는 냥이님이 2008-07-02 11:02에 작성한 댓글입니다.
이 댓글은 2008-07-02 11:03에 마지막으로 수정되었습니다. Edit

아주 잘되요..

조금만 응용하면 되는군요

냥이님이 갈켜주신거는 항상 반복 분석 하고있어요~ ^^

고맙습니다.

윤동민(tersa01)님이 2008-07-02 17:01에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
1671다시 view에 대해 질문드립니다. [2]
이도희
2008-07-03
10890
1670view에 대해 질문드립니다. [3]
이도희
2008-07-03
10348
1669instead of 트리거 생성시 에러가 납니다.
이도희
2008-07-02
10316
1668결과값이 없을때 특정 select 실행법 [2]
윤동민
2008-07-02
10835
1667통신 오류관련 질문입니다. [1]
black
2008-07-01
10598
1666라이브러리 혹은 테이블 볼 수있는 쿼리? [1]
왕초보
2008-07-01
10240
1665db2에서 full outer join하기... [1]
즐프
2008-07-01
11096
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.049초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다