2012-05-31 102 views
2

是否可以在t-sql查詢中的FROM子句中使用CASE? 例如:FROM子句中的CASE

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

不,它不是! – Mithrandir

回答

1

謝謝大家對您的輸入。我真的結束了類似於Quassnoi的建議:

SELECT * 
FROM table_ t, firstTable fT 

UNION 

SELECT * 
FROM table_ t, secondTable sT 

我不知道我在想什麼。我應該早點明白這一點。

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

只要你知道如何使用它*非常*明智地知道它沒有錯。 :-) –