0
我試圖到FoxPro數據庫遷移到SQL Server。我在FoxPro中的CASE語句,其工作原理是這樣..是否有可能有一個CASE語句中多個SELECT語句在SQL
CASE *variable* = 1
SELECT * FROM TABLEA INTO CURSOR A
CASE *variable* = 2
SELECT * FROM TABLEB INTO CURSOR B
CASE *variable* = 3
SELECT * FROM TABLEC INTO CURSOR C
CASE *variable* = N
SELECT * FROM TABLEN INTO CURSOR N
有沒有辦法將此CASE語句轉換爲SQL而不使用IF?我假設在SQL Server CASE中只能在SELECT中寫入。
謝謝。
我想你可以加入像'JOIN表A基於VAR = 1,表B JOIN基於VAR = 2'等所有表我不會建議這樣做(因此是評論而不是答案),但它可能會提供一些啓發。 – corsiKa
在t-sql'case'不適用於流程控制;相反,它用於返回一個單一的值,你將不得不使用IF - 它可能適用於foxpro,但這種方法 - 特別是遊標 - 很少是SQL服務器中最好的方法。 –
爲什麼你不能使用'IF'?就我所知,無法在SQL中使用CASE,因爲結果必須是一個「表達式」,它是一個單值。 –