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 39239 게시물 읽기
No. 39239
IN 안의 조건 컨트롤 문의드립니다.
작성자
작성일
2012-01-17 20:23
조회수
3,860

안녕하십니까 ~

IN 조건에 SELECT 쿼리가 있는데 이 결과가 NULL 이면 어떤 특정값을 넣어주고 싶은데 방법을 도저히 못찾겠습니다.

여러라인이 리턴이라 DECODE나 NVL 도 사용 못하고

아래는 예문입니다.

부탁드립니다.

 

WITH SEL AS (
                          SELECT '001' AS KY , 'A' AS CON FROM DUAL UNION ALL
                          SELECT '002' AS KY , 'A' AS CON FROM DUAL UNION ALL
                          SELECT '003' AS KY , 'B' AS CON FROM DUAL UNION ALL
                          SELECT '004' AS KY , 'B' AS CON FROM DUAL
                          )
SELECT KY
  FROM (
                 SELECT 'AAA' AS KY, '001' AS FKY FROM DUAL UNION ALL
                 SELECT 'BBB' AS KY, '002' AS FKY FROM DUAL UNION ALL
                 SELECT 'CCC' AS KY, '003' AS FKY FROM DUAL UNION ALL
                 SELECT 'DDD' AS KY, '004' AS FKY FROM DUAL
                )
 WHERE FKY IN (SELECT KY
                                   FROM SEL
                                 WHERE CON = 'A'
)  -- 요기 조건

---------------------- 조건에 'A' 입력시 결과 --------------------------------

KY

AAA
BBB
--------------------------------------------------------------------------------------

---------------------- 조건에 'C' 입력시 원하는 결과 --------------------------------

 

KY

CCC

--------------------------------------------------------------------------------------

 

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

조건 'C' 에 결과 'CCC'는 왠지 당위성이 없어보이네요...

'CCC'는 'B'의 일부인데요. 왜? 'C'에 대한 결과로 나와야 하죠?

마농(manon94)님이 2012-01-18 08:55에 작성한 댓글입니다.

아 C라는것은 IN 조건안의 쿼리에서 결과값이 한줄도 없는 NULL 상태를 의미합니다.

이 상태에서 하드코딩의 'CCC' 혹은 컬럼내의 지정된 특정한 값을 넣어줄려고 예시를 보여드린것입니다.

특별히 CCC 가 아니어도 됩니다.

좀더 설명드리면 계층쿼리의 START 조건이 IN 으로 되어 있고 IN 안에 SELECT 쿼리가 있는데 IN 조건안에 어떤 값도 없다면 최상위 루트를 START 조건으로 넣어주고 싶어서 고민중입니다.

 

현재 상태에서 힘들다면 컬럼을 추가해주셔도 됩니다.

 

감사합니다 ^^

랑님이 2012-01-18 09:56에 작성한 댓글입니다. Edit

SELECT NVL(ky, 'ZZZ') ky
  FROM sel
 RIGHT OUTER JOIN dual
    ON con = 'C'

마농(manon94)님이 2012-01-18 10:12에 작성한 댓글입니다.

마농님 답변 감사합니다.

항상 하나씩 큰거 배우고 갑니다.

랑님이 2012-01-18 10:29에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
39242고수님들의 주옥같은 도움 절실히 필요합니다.도와주세요...ㅠㅠ [5]
일쌍다반사
2012-01-18
4512
39241procedure, package 사용용도 [1]
나재호
2012-01-18
3657
39240쿼리 질문입니다 help~ [2]
물고기
2012-01-17
3568
39239IN 안의 조건 컨트롤 문의드립니다. [4]
2012-01-17
3860
3923811g deffered_segment_creation 부분을 모르겠습니다. [1]
한근희
2012-01-17
3715
39235덤프가 다 안받아 짐니다. 도와주세요. [1]
한근희
2012-01-17
3642
39234사용자(schema) 별 트레이스가 가능한가요? [1]
나그네
2012-01-17
3517
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다