2012-05-31 2 views
2

t-sql 쿼리에서 FROM 절에서 CASE를 사용할 수 있습니까? 예를 들어 : 귀하의 의견FROM 절 내부의 사례

SELECT * 
FROM CASE 
    WHEN column_ = 'firstColumn' 
     THEN table_ t, firstTable fT 
    ELSE table_ t, secondTable sT 
+0

아니요, 그렇지 않습니다 !!!! – Mithrandir

답변

1

감사합니다 여러분. 내가 무슨 생각 모른다

SELECT * 
FROM table_ t, firstTable fT 

UNION 

SELECT * 
FROM table_ t, secondTable sT 

: 나는 실제로 Quassnoi의 제안과 비슷한 일을했다. 나는 그것을 일찍 알아 내야했다.

3
SELECT * 
FROM mytable t 
CROSS APPLY 
     (
     SELECT * 
     FROM firstTable ft 
     WHERE t.column = 'firstColumn' 
       AND ft.id = t.joincolumn 
     UNION ALL 
     SELECT * 
     FROM secondTable st 
     WHERE (t.column <> 'firstColumn' OR t.column IS NULL) 
       AND st.id = t.joincolumn 
     ) q 
+0

나는 고쳐졌다. :-) +1,하지만 이런 일을하면 기꺼이 당신과 일하지 않아요. ;-) –

+0

@KenWhite : 'CROSS APPLY'에 대해 알고있는 사람과 일하면서 나쁜 점이 있습니까? :) – Quassnoi

+0

당신이 그것을 아주 * 현명한 사용법을 알고있는 한, 그것을 아는 것이 잘못된 것은 없습니다. :-) –