2014-11-12 5 views
2

Select 문에서 Case를 사용하는 것에 익숙합니다.코드를 실행할 case 문

If 문 대신 사용하는 것처럼 코드를 실행하는 방법을 잘 모르겠습니다.

가능한지 알고 계십니까? 나는이 시도했지만 작동하지 않습니다

CASE @Variable 
    WHEN 0 THEN 
     SELECT * FROM TABLE1 
     ... 
     BREAK; 
    WHEN 1 THEN 
     SELECT * FROM TABLE2 
     ... 
     BREAK; 
END 

즉, 나는이 기능을 얻어야한다 :

if(@Variable=1) SELECT * FROM TABLE1 
if(@Variable=2) SELECT * FROM TABLE2 

을하지만 인수 사례 문을 사용하여.

이것은 샘플 코드이므로 문자 그대로 사용하지 마십시오. 목적은 CASE 문을 IFTHEN 문과 같은 방식으로 사용할 수 있는지 확인하는 것입니다. 같은 switch에서 c#

+1

이런 식으로 CASE를 사용할 수 없습니다. – DavidG

+0

당신은 할 수 없지만 동적 SQL을 사용하여 수행 할 수 있습니다 ... – Codexer

+0

관련 질문에서이 답변은 CASE를 사용하는 참신한 방법을 보여줍니다. http://stackoverflow.com/a/16341062/152891 – NReilingh

답변

2

내가 아는 한, CASE 존재하지 않습니다. SQL 표준은 당신이 알고있는 CASEexpressions에 대해서만 말합니다. 이것은 this question에서 이미 언급되었습니다.

IF...ELSE statements은 공급 업체에 따라 다르며 표준에 포함되지 않습니다. 그러나 그것들은 기본적으로 우리가이 점에서 가지고있는 전부입니다.

+0

이런 식으로 사용하십시오. 나는 내가 사용했던 다른 모든 Ms 기술들이 논쟁을 위해 Case/Switch 문을 가지고 있기 때문에 확신하도록 요구했다. 하지만 당신의 대답은 정확하다고 생각합니다. 고맙습니다. –

+0

@ControlFreak : 유감스럽게도 T-SQL은 관계형 유형과 달리 프로그래밍 방식 유형의 경우에는 "프로그래머 - 정중함"부서에서 부족한 경우가 많습니다. – voithos