DB

SELECT 절에 ' 표시 (escape)

수학소년 2023. 6. 6. 22:39
SELECT '''' FROM DUAL;
'

'''' 4개를 써야 ' 로 표시 됌

 

이거 할랬던 이유가 쿼리의 SELECT 결과를 IN절에 쓰려고 했었음

SELECT * FROM TABLE WHERE COL IN ('1','2','3');

물론.. IN 절에 SUB QUERY 넣으면 돼긴 한데...

조인 불가능 한경우는 어쩔 수 없이 결과 옮겨서 해야 함

 

SELECT COL FROM TABLE; 의 결과가

'1'

'2'

'3'

...

'29' 라면,

세로 편집으로 앞에 ' 붙이고, 뒤에 ', 붙이고 마지막ROW엔 , 하나 지우고 복붙해서 쿼리 돌림

 

만약 '1','2','3',...,'29' 라는 문자열을 얻을 수 있으면 좋겠는데.

LISTAGG 또는 GROUP_CONCAT로 결과를 ,로 모아보자

 

ORACLE

SELECT LISTAGG('''' || INST_CLF_CD || '''', ',') WITHIN GROUP (ORDER BY INST_CLF_CD)
  FROM ORG
;

 

DB2

SELECT LISTAGG('''' || INST_CLF_CD || '''', ',') FROM ORG;

 

MYSQL, MARIA

SELECT GROUP_CONCAT('''', INST_CLF_CD, '''' SEPARATOR ',') FROM ORG;