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 41772 게시물 읽기
No. 41772
더블 쿼테이션시 궁금한점입니다.
작성자
김영후(treet)
작성일
2019-11-14 19:46
조회수
890
WITH A AS
(
SELECT 'AAA' AS USR_ID
  ,'WINTER' AS CD 
FROM DUAL
UNION
SELECT 'BBB' AS USR_ID
  ,'SUMMER' AS CD 
FROM DUAL
UNION 
SELECT 'CCC' AS USR_ID
  ,'SPRING' AS CD 
FROM DUAL
)
SELECT * FROM A
WHERE CD IN (SELECT '''WINTER'',''SUMMER''' FROM DUAL)
 
위와 같이 단순히 in 데이터에 더블 쿼테이션 포함 된 데이터가 들어올 경우  조회가 안되더군요
 
실제 셀렉트 된 데이터로 입력하면 문제가없고요
 
데이터를 FUNCTION 에서 가공해서  ==>>  'WINTER','SUMMER'    이렇게 가공햇는데  IN 조건에다가 저 FN 을 가져오거나 위와같이 ''' 쿼테이션을 넣으니 에러는 없는데 빈값만 나오네요
 
혹시 해결방안이 있는지 궁금합니다.
이 글에 대한 댓글이 총 2건 있습니다.

원하시는 것이 아래 결과 인것 같은데...

WITH A AS
(
    SELECT 'AAA' AS USR_ID
          ,'WINTER' AS CD 
    FROM DUAL
    UNION
    SELECT 'BBB' AS USR_ID
          ,'SUMMER' AS CD 
    FROM DUAL
    UNION 
    SELECT 'CCC' AS USR_ID
          ,'SPRING' AS CD 
    FROM DUAL
)
SELECT * FROM A
WHERE CD IN (SELECT distinct regexp_substr(A.TXT, '[^,]+', 1, LEVEL) TXT
             FROM (SELECT 'WINTER,SUMMER' TXT FROM dual) A
             CONNECT BY LEVEL <= length(regexp_replace(A.TXT, '[^,]+',''))+1) 

보통 WHERE 구문에

IN ('WINTER', 'SUMMER') 이런식으로 되어서 혼동하시는 것 같은데

구분자를 포함한 문자열로 조회할려면

구분자로 구분해 ROW를 만들어 조회를 해야 합니다.

 

위에처럼 CONNECT BY를 이용하시면 됩니다.

박인호(paerae)님이 2019-11-15 10:17에 작성한 댓글입니다.

 궁금한점이 완전 해결되었네요

in('','') 이부분이 혼동이되어서 였습니다.

구분자를 ROW로 만들어야되는거군요

김영후(treet)님이 2019-11-15 11:21에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
4177510g reorg 작업에 대해 질문드려요 [1]
lee
2019-11-26
764
41774select 쿼리에 in 조건이 2개일때 index 를 태울수있나요?? [4]
아벨의꿈
2019-11-20
898
41773프로시저생성이 안됩니다.. 과제인데..ㅜ [1]
홍승표
2019-11-17
816
41772더블 쿼테이션시 궁금한점입니다. [2]
김영후
2019-11-14
890
41771Mssql 에서 오라클로 bcp 를 이용한 마이그 시 질문입니다
정희철
2019-11-06
738
41770Oracle에서 redo 로그를 직접 읽을 수 있는 방법이 있나요?
구리구리
2019-11-04
730
41769regexp_substr 사용 시 기준값에 null 이 있으면 어떻게 해야될까요? [1]
나그네
2019-11-01
731
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2020 DSN, All rights reserved.
작업시간: 0.043초, 이곳 서비스는
	PostgreSQL v13.0으로 자료를 관리합니다