我有一個子查詢返回一列,顯示爲GroupType,然後我想對主查詢中的這個結果做一個CASE函數,但是我得到一個無效的列名當使用CASE語句時。引用主查詢中的子查詢的結果
我能做到這一點的SQL做我有一個不同的名稱來指代它
我有一個子查詢返回一列,顯示爲GroupType,然後我想對主查詢中的這個結果做一個CASE函數,但是我得到一個無效的列名當使用CASE語句時。引用主查詢中的子查詢的結果
我能做到這一點的SQL做我有一個不同的名稱來指代它
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
問題是,我需要使用它兩次,一次按結果分組,一次基於一個組來改變輸出。我希望不必輸入兩次子查詢。 – Audioillity 2009-09-11 10:40:11
您可以請現在發佈您的查詢嗎? – Quassnoi 2009-09-11 10:45:16
很難提出更好的方法來做到這一點不看看你有什麼代碼。我會建議,雖然相關的子查詢通常是一種很差的技術來獲取數據。 – HLGEM 2009-09-11 14:15:14