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 39322 게시물 읽기
No. 39322
where절의 in 조건을 파라메터에 따라 부여할수 있을까요??
작성자
곰두리
작성일
2012-03-02 09:43ⓒ
2012-03-02 09:47ⓜ
조회수
4,174

안녕하세요.

Where ....

and AAA in (Select AAA from Table_B where A=123) 

위와같이 서브쿼리를 이용한 in 조건을, 특정 파라메터가 넘어간 경우일때만 주고 싶은데요...

and AAA in Case 1=? then (select....) else (AAA) end

case 문일때는 이런식으로 다중결과가 넘어가면 안되잖아요?

자바소스에서 동적쿼리로 조건을 부여하는 방법 말고 쿼리만으로 해결해야 하는데요...

상위 from 절에 걸려있는 table도 많고 쿼리도 복잡한데다, 고쳐야할 쿼리가 수십개라... 각 쿼리마다 간단하게 한줄 추가하는 방법으로는 없을까요?

 

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

자체해결 했습니다.

and (1=? or AAA in (select ....))

위와 같은 방법으로 해결 할수 있는거 같네요.

쉽게 생각하면 될걸.. 어렵게 생각한거 같습니다.

혹시 잘못된 방법이라면 댓글 부탁드립니다.

곰두리님이 2012-03-02 09:59에 작성한 댓글입니다. Edit

 실행 계획이어떤지 확인해보시고 

AAA 로 인해 인덱스사용이 변경 되는 경우에는 

쿼리를 둘로 쪼개서 UNION ALL 로 합치는게 낫습니다.

.

1조건 

 

SELECT 

FROM 

WHERE

:특정파라메터 = 1

불라불라불라

UNION ALL

SELECT

FROM WHERE

:특정파라메터=2

AND and AAA in (Select AAA from Table_B where A=123) 

불라불라불라 

 

 

 

cReAm(catz)님이 2012-03-02 21:49에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
39325ROLLUP 관련 질문입니다. [3]
권정현
2012-03-05
5614
39324월간 주차 구하는 쿼리 문의 [1]
이문정
2012-03-02
5353
39323EXECUTE IMMEDIATE의 V_SQL 타입 변경 [1]
전형근
2012-03-02
3799
39322where절의 in 조건을 파라메터에 따라 부여할수 있을까요?? [2]
곰두리
2012-03-02
4174
39321DB & 소켓통신 질문입니다.(C++ 이용)
나진산
2012-02-29
4215
39320도와주세요 ㅠㅠㅠㅠ [2]
ㅠㅠ
2012-02-29
3678
39319특정일자의 시간대 데이터에서 입력되지 않은 시간대 구하기. [2]
sysopmin
2012-02-28
4767
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다