[MSSQL] CASE WHEN 쿼리문 질문 드립니다. 0 2 2,113

by 보청기 [SQLServer] [2022.11.25 21:10:27]


안녕하세요. 
아래 쿼리처럼 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


by 우리집아찌 [2022.11.27 09:49:07]

case when 조건이 좀 이상한데요.


by 마농 [2022.11.28 08:24:42]

변수에 값을 할당하는 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

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입