我試圖在select語句中像這樣在SQL Server 2005中使用case語句,並且出現錯誤「只有一個表達式可以在子查詢沒有與EXISTS一起引入時在選擇列表中指定。 「不能在SQL查詢中使用一個Case?!SQL查詢中的Case語句
declare @TypeofDayID int
set @TypeofDayID = (Select TypeofDayID from RepInfo where RepInfoID = @RepInfoID)
Select CASE
WHEN @TypeofDayID = 1
THEN (Select * from RepInfo RD inner join SellingInfo S on S.RepInfoID = @RepInfoID)
WHEN @TypeofDayID = 2
THEN (Select * from RepInfo RD inner join UpgradingInfo U on U.RepInfoID = @RepDailyID)
WHEN @TypeofDayID = 9 or @TypeofDayID = 10
THEN (Select * from RepInfo RD inner join DeliveryInfo D on D.RepDailyID = @RepDailyID)
END
from RepInfo RD
當你使用你的'SELECT'一個'CASE'語句來定義單個列,你不能這樣做'SELECT CASE WHEN東西然後選擇* ...' – Lamak
號子查詢可以」噸。使用if塊。 – Kermit
與上述同意。您可以在SELECT中使用CASE來測試值,但如果您正在尋找執行不同類型的代碼,那麼您將需要使用IF來代替。 – Matt