我有一個子查詢和case語句案例語句的性能(是否有可能從另外一個內引用另一個case語句?)
我在同一個查詢的兩個案例說明問題:
- 其中一個子查詢用於確定列是否匹配。
- 我希望對方檢查是否匹配[其他檢查],然後標記一個值。
- 但是,t-SQL不會讓我在我的第二個case語句中引用我的第一個字段(由case語句生成)。
- 這迫使我的子查詢添加到我的第二個case語句,並廢除第一個case語句
- 當我這樣做,我的查詢13秒鐘後需要2.5分鐘
- 當我從完全消除子查詢我的查詢,它需要8秒運行
問題1:能case語句生成的場在同一查詢後續的case語句引用?
問題2:爲什麼我的查詢需要只有5秒的時間,當我在一個孤立的事件聲明的子查詢,但2分鐘的時間時查詢是在具有其他4-5檢查case語句?
1種情況的聲明
CASE WHEN (SELECT xxx.xxx from xxx) THEN 'Y'
END AS "Match_Ind",
第二種情況聲明
CASE WHEN condition 1 = true THEN 'cond1'
WHEN condition 2 = true THEN 'cond2'
WHEN Match_Ind = 'Y' THEN 'matched'
END AS "Match Detail"
您可以發佈你的完整查詢?你可能甚至不需要'CASE'語句中的'SELECT'。 – Taryn 2012-08-14 20:49:10