0
TSQL에서 부울 값을 기반으로하는 특정 값에 대해 많은 열을 만들어야합니다.case 문에 중첩 된 If 문 TSQL
C1 | C2 | EdittedCol |
-----------------------
0 | 1 | not allowed
1 | 1 | allowed
1 | 0 | not allowed
and so on...
IF 문으로이 작업을 수행하는 더 좋은 방법은 현재 여러 가지로 중첩되어 있습니다.
SELECT C1, C2,
CASE when C1 = 1 and C2 = 1 then 'allowed' else
CASE when C1 = 0 then 'not allowed - C1 = 0' else
CASE when C2 = 0 then 'not allowed - C2 = 0'
end end end as EdittedCol
FROM myTestTable
반환 값 :
C1 | C2 | EdittedCol |
-----------------------
0 | 1 | not allowed - C1 = 0
1 | 1 | allowed
1 | 0 | not allowed - C2 = 0
and so on...
질문은 무엇입니까? 표시된 코드가 올바른 결과를 산출합니까? 그렇지 않다면 왜 안 되겠습니까? 아니면 더 좋은 방법이 있는지 묻는 것입니까? 'if' 문으로 멀리까지 가지 않을 것입니다. 왜냐하면 그것은 절차 적 코드를위한 것이지,'select' 문과 같은 set-based 코드가 아니기 때문입니다. –
@underscore_d는 더 나은 방법을 요구합니다. 결과를 표시하도록 수정합니다. – Travis