안녕하세요. 아래 쿼리처럼 SELECT 절에 적힌 CASE 문 결과 값을 다른 필드로 같이 나오게 하고 싶어서 간단한 테스트 쿼리를 작성해서 해보니 오류만 나오고 안되는데. SELECT 를 한번더 감싸는 방법 말고 다른 방법이 있는지 좀 알고 싶습니다. 선배님들의 조언 부탁드리겠습니다. 감사합니다. declare @result varchar(50) select @result = ( case when 1=1 then '1' when 2=2 then '2' when 3=3 then '3' else '0' end ) result, @result as result_result
case when 조건이 좀 이상한데요.
변수에 값을 할당하는 SELECT 문은 데이터 검색 작업과 함께 사용할 수 없습니다.
할당문과 조회문을 따로 실행하세요.
할당문에 SELECT 를 이용할 수도 있지만, 명확하게 SET 구문을 이용하는게 좋을 듯 합니다.
-- 1. 선언
DECLARE @result VARCHAR(50)
-- 2. 할당
SELECT @result = CASE WHEN 1=1 THEN '1'
WHEN 2=2 THEN '2'
WHEN 3=3 THEN '3'
ELSE '0' END
-- 3. 조회
SELECT @result AS result_result