2009-09-11 92 views
0

我有一個子查詢返回一列,顯示爲GroupType,然後我想對主查詢中的這個結果做一個CASE函數,但是我得到一個無效的列名當使用CASE語句時。引用主查詢中的子查詢的結果

我能做到這一點的SQL做我有一個不同的名稱來指代它

+0

很難提出更好的方法來做到這一點不看看你有什麼代碼。我會建議,雖然相關的子查詢通常是一種很差的技術來獲取數據。 – HLGEM 2009-09-11 14:15:14

回答

0
SELECT CASE 
     WHEN 
     (
     SELECT column 
     FROM othertable 
     ) = 1 
     THEN '1' 
     ELSE '2' 
     END 
FROM mytable 

要重新使用子查詢結果:

SELECT subvalue, CASE subvalue WHEN 1 THEN 1 ELSE 2 END 
FROM (
     SELECT (
       SELECT column 
       FROM othertable 
       ) AS subvalue 
     FROM mytable 
     ) q 
+0

問題是,我需要使用它兩次,一次按結果分組,一次基於一個組來改變輸出。我希望不必輸入兩次子查詢。 – Audioillity 2009-09-11 10:40:11

+2

您可以請現在發佈您的查詢嗎? – Quassnoi 2009-09-11 10:45:16