2009-03-30 8 views
1

테이블의 한 특성 값을 확인하고 값에 따라 다른 열 집합을 선택하는 SQL Server 2005 쿼리를 만들어야합니다. 어떻게하면됩니까?조건에 따라 select 문의 열을 선택하는 방법은 무엇입니까?

'car'테이블에서 'type'속성의 값이 1이고 2 유형이인 경우 type = 1 일 때 3 개의 열이있는 'query1'을 선택하십시오. type = 2 일 때 다른 4 개의 열이있는 다른 select 'query2'를 실행하고 싶습니다.

어떻게하면됩니까? 도와주세요.

답변

1

If 문을 사용하여 저장 프로 시저를 찾고 있다고 생각합니다. CASE는 작동하지만 리턴 된 C 럼 수는 변경할 수 없습니다.

-1
SELECT 
    Col1 = CASE WHEN Type = 1 THEN (SELECT Null FROM T1) 
     ELSE (SELECT Col1 FROM T2) END 
    , Col2 = CASE WHEN Type = 1 THEN (SELECT Col1 FROM T1) 
      ELSE (SELECT Col2 FROM T2) END 
    , Col3 = CASE WHEN Type = 1 THEN (SELECT Col2 FROM T1) 
      ELSE (SELECT Col4 FROM T2) END 
    , Col4 = CASE WHEN Type = 1 THEN (SELECT Col3 FROM T1) 
      ELSE (SELECT Col4 FROM T2) END 
FROM Cars 

이 포함 된 모든 테이블로 우리에게 DDL을 보여한다면, 당신은 아마 더 나은 해답이나 접근 방식 (더 읽기) 다른를 얻을 것입니다.

+0

"왜"내 및 in.spite의 대답이 다운 그레이드되었는지 알고 싶습니다. –

관련 문제