by 토토맘 [SQL Query] 오라클 mybatis [2015.07.08 14:26:36]
spring프레임웤+mybatis 환경하에서
쿼리를 구현하는 중 궁금한 것이 있어서 올려봅니다.
select
a.코드,
a.유형
a.타입
from
임의테이블 a
예를 들어 임의테이블에 '유형'이라는 컬럼이 있을수도 없을수도 있습니다.
이럴 때 오라클 쿼리만으로 이를 체크해서 있는 경우에만 가져오는 방법이 없을까요?
컬럼 존재유무를 아래 쿼리로 체크해서
SELECT COUNT(*) cnt FROM col WHERE tname = '임의테이블' AND cname = '유형';
해당 결과를 이용해 동적 쿼리 구성
아 감사합니다. 마농님...
근데 여기서 제마음같아선, 아래와 같이
case when (SELECT COUNT(*) cnt FROM col WHERE tname = '임의테이블' AND cname = '유형') =1 then a.유형 else '' end ,
SELECT
COUNT
(*) cnt
FROM
col
WHERE
tname =
'임의테이블'
AND
cname =
'유형'
이렇게 한번에 하고 싶은데 에러네요..
결국은 쿼리를 두번 날려서 처리하는 방법밖엔 없는거죠?
mybatis 에서는 SQL에 동적으로 컬럼 추가하는게 쉬운것으로 압니다.
SELECT a.코드 <if test = "cnt == 1"> , a.유형 </if> , a.타입 FROM 임의테이블 a ;