아래와 같이 구문을 생성했는데요 어떤분의 예제에서
동적SQL이 아닌 정적SQL 로 만든것이라고 한것입니다.
맞는 것인지 궁금합니다.
그리고 아래 Then 이후에 컬럼을 여러개 뿥여도 되는 것인지 안되는 것인지 방법이 있는 것인지 알고 싶습니다.
A와 B는 같은 컬럼을 사용해도 되는 것이어서요
ex)
Case @aChk
When 'A' or 'B' Then a_reason, a_result
When 'counsel' Then b_reason, b_result
when 'prescribe' Then b_reason, c_result
이런식으로 말입니다.
////////////////////////////////////// //////////////////////////////////
CREATE PROCEDURE USP_KPIS_MODAL_INFO
@treat_id varchar(30) ,
@sChk char(10)
As
Declare @aChk varchar(20)
Set @aChk= @sChk
SELECT
req_id,
Case @aChk
When 'A' Then a_reason
When 'B' Then b_reason
when 'C' Then b_reason
When 'D' Then c_reason
End as reason,
Case @aChk
When 'A' Then a_result
When 'B' Then a_result
when 'C' Then b_result
When 'D' Then c_result
End as reason,
FROM OCS_TREAT A
WHERE treat_id = @treat_id
Comment 1
-
이리
2017.10.23 11:26
https://docs.microsoft.com/ko-kr/sql/t-sql/language-elements/case-transact-sql
조건절은 여러개 지정이 가능하지만 결과는 하나여야 합니다.
CASE
WHEN 변수 IN ('A', 'B') THEN ...