2012-07-06 71 views
0

我有這樣的:選擇IF到自定義變量

SELECT 
     @is_daily_rollup = CASE WHEN rt.[id]=1 THEN 1 ELSE 0, 
     @is_weekly_rollup = CASE WHEN rt.[id]=2 THEN 1 ELSE 0 

但SQL Server抱怨的語法。我將如何去實現這個條件值到一個變量?

+0

是一個表? – Akhil 2012-07-06 19:58:12

+0

它是一個表別名 – 2012-07-06 20:00:52

+0

如果這是一個表別名,則需要引用該表。另外,你的表只包含一行?否則,上述邏輯失敗! – Akhil 2012-07-06 20:02:26

回答

4

對於CASE聲明,你需要提供一個END

CASE WHEN rt.[id]=1 THEN 1 ELSE 0 END 
CASE WHEN rt.[id]=2 THEN 1 ELSE 0 END 

如此完整的查詢將是:

SELECT @is_daily_rollup = CASE WHEN rt.[id]=1 THEN 1 ELSE 0 END, 
     @is_weekly_rollup = CASE WHEN rt.[id]=2 THEN 1 ELSE 0 END 
4

你缺少ENDCASE

SELECT 
     @is_daily_rollup = CASE WHEN rt.[id]=1 THEN 1 ELSE 0 END, 
     @is_weekly_rollup = CASE WHEN rt.[id]=2 THEN 1 ELSE 0 END 

當然,這是assu你已經宣佈了你的變量。