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 41399 게시물 읽기
No. 41399
(추가)in으로 ''조회하여 빈 행 출력
작성자
빡빡완(빡빡완)
작성일
2017-05-15 15:30ⓒ
2017-05-16 13:34ⓜ
조회수
6,849

안녕하십니까 sql 초보입니다.

 

SELECT a,b

FROM tb

WHERE a IN

{'1','2','','4'}

 

원하는 결과

a b

-------

1 z

2 x

 

4 y

 

in으로 ''조회시 결과값이 안나오고 row만 차지하도록 하고 싶습니다.

rownum,nvl으로 어째하면 될 것 같은데 잘 모르겠네요..

 

(추가) 조회 건수가 약 1000건입니다.

보안상 임시 테이블 생성은 불가해서 dual로 처리해야 합니다.

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

WITH tb AS
(-- 검색 대상 테이블 --
SELECT '1' a, 'z' b FROM dual
UNION ALL SELECT '2', 'x' FROM dual
UNION ALL SELECT '4', 'y' FROM dual
)
, tmp AS
(-- 입력 조건 값 집합 생성 --
SELECT 1 rn, '1' a FROM dual
UNION ALL SELECT 2, '2' FROM dual
UNION ALL SELECT 3, ''  FROM dual
UNION ALL SELECT 4, '4' FROM dual
)
-- 입력 조건 값 집합을 생성하여 원본 데이터와 아우터 조인
SELECT a.a
     , b.b
  FROM tmp a
     , tb  b
 WHERE a.a = b.a(+)
 ORDER BY a.rn
;

마농(manon94)님이 2017-05-15 17:00에 작성한 댓글입니다.

입력 조건용 임시테이블을 생성하기에는 조회건수(약 1000건)가 너무 많습니다..

글쓴이님이 2017-05-15 18:11에 작성한 댓글입니다. Edit

쿼리보단 프로그램에서 처리하는게 맞을 것 같은데요 

재조산하님이 2017-05-16 09:57에 작성한 댓글입니다. Edit

IN 절의 최대 갯수 제한(1000개) 있는건 아시는지요?


1000 개의 IN 절은 어떻게 만들어 지나요?
프로그램에서 동적으로 만드는것 아닌가요?
IN 절 만들 듯이 UNION ALL 만들면 되는 것 아닌지요?


1000 개의 자료는 어디서 가져오나요?
혹시 테이블에서 특정 조건으로 가져온다면?
테이블을 직접 서브쿼리로 사용하는게 좋습니다.

마농(manon94)님이 2017-05-16 10:08에 작성한 댓글입니다.

이 쿼리의 목적은 엑셀 자료작성에 있습니다.

 

IN절의 1000개의 자료 또한 엑셀로 받아서 CONCATENATE하여 만든 자료입니다.

(=CONCATENATE("'",A1,"',") 이런식)

 

엑셀 CONCATENATE로 UNION ALL문 작성해서 원하는 결과는 얻었습니다.

(Toad, 결과를 엑셀로 뽑음)

 

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

* 질문 요지는 이 문제를 rownum,nvl 등을 사용하여 쿼리로 해결할 수 있는지 궁금했습니다.

 

rownum a b

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

1 1 z

2 2 x

3

4 4 y

select 결과가 없으면 b는 '' 또는 * 또는 null 등등 구분가능 값을 나오게

하고 싶은 느낌이었는데..잘 안되었네요

 

댓글을 통해 많이 배워갑니다~

글쓴이님이 2017-05-16 13:50에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
41406오라클 Date 시간 출력 고민. [2]
지구본
2017-05-22
6998
41403SELECT문 질문드립니다. [3]
도토리
2017-05-19
8980
41400RMAN 복구 질문
검콤이
2017-05-16
5963
41399(추가)in으로 ''조회하여 빈 행 출력 [5]
빡빡완
2017-05-15
6849
41393쿼리 작성 문의 [1]
김씨
2017-05-12
6073
41391테이블 select시, 칼럼명(comments)보여주기 가능한가요? [1]
정신정행
2017-05-11
6142
41379두개의 컬럼 그룹 문의좀 드려봐요. [2]
기쁨이
2017-05-01
6397
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.050초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다