안녕하세요.
마이바티tm 사용시 foreach문안에 alias를 지정을 할수있나요?
아래 주석된것처럼 개별로 사용시 AS ~로 지정이 가능한데
foreach안에서도 사용할수 있는방법이 있을까요?
SELECT
area
<foreach collection="yearRange" item="year" open="," close="" separator=",">
SUM(CASE WHEN 등록연도 = #{year} THEN 횟수 ELSE 0 END)
</foreach>
<!-- , SUM(CASE WHEN 등록연도 = '2000' THEN 횟수 ELSE 0 END) AS y2000
, SUM(CASE WHEN 등록연도 = '2001' THEN 횟수 ELSE 0 END) AS y2001
, SUM(CASE WHEN 등록연도 = '2002' THEN 횟수 ELSE 0 END) AS y2002
-->
<foreach collection="yearRange" item="year" open="," close="" separator=",">
SUM(CASE WHEN 등록연도 = #{year} THEN 횟수 ELSE 0 END) as y#{year}
</foreach>
마이바티스를 사용해보지 않아서 잘은 모르겠지만 아마 item에 기술한 변수가 #{} 으로 들어가는 것 같은데...
그렇다면 as 이후 문장을 추가로 만들면 가능하지 않을까요?
답변감사합니다 이렇게 작성하니 잘나오네요!
알려주신 방법도 해봤는데 문법에러인지 로그가 아래처럼 찍히더라구요..
Error Msg = ORA-00923: FROM 키워드가 필요한 위치에 없습니다.
<foreach collection="yearRange" item="year" open="," close="" separator=",">
SUM(CASE WHEN 등록연도 = #{year} THEN 횟수 ELSE 0 END) as y${year}
</foreach>
# 을 이용하면 '(따옴표) 가 자동으로 붙는다고 합니다.
$ 를 사용하면 원 텍스트가 붙는다고 하네요.