SELECT
CASE
WHEN COUNT(*) > 0 THEN 'Y'
ELSE 'N'
END as is_dup
FROM
tb_web_role_bas
WHERE 1=1
and role_cd = '${strCheck(request.body.cond.role_cd)}
// 이 쿼리를 풀이하면 어떻게 되나요?
혹시 뒤에 ${~~}부분이 뭔지 아시는 분 있으신가요?
$로 표현된 부분은 SQL 영역이 아닌 프로그래밍 영역으로
프로그램의 변수를 SQL에 대입하는 부분입니다.
의미를 살펴보면
변수에 입력된 role_cd 에 해당하는 자료가 테이블에 있으면 Y 없으면 N 을 조회
즉, 해당 자료가 존재하는지 확인하는 쿼리입니다.
'마농' 님 감사합니다^^ 혹시 END as is_dup는 저 코드 안에서 별다른 의미가 없는 건가요?
"END as is_dup" 만 따로 떼어 보시면 안되고
"CASE WHEN COUNT(*) > 0 THEN 'Y' ELSE 'N' END as is_dup" 이 하나입니다.
CASE ~ END 까지가 하나의 표현식이고 AS 는 앞의 표현식 결과에 대한 별칭을 부여한 것입니다.
http://gurubee.net/lecture/1028 <-- DECODE 와 CASE
http://gurubee.net/lecture/1018 <-- 예명(Alias)
http://gurubee.net/oracle/sql <-- Oracle SQL 기초 강좌