2015-05-07 73 views
0

我需要這樣做。根據case/when語句將多個值插入到表結構中

Declare @something varchar(100) 
Declare @tempdata TABLE (temp varchar(100)) 

INSERT INTO @tempdata (temp) select case 
     when @something is null then 'temp1','temp2' 
     else @something 
     end 

select * from @tempdata 

看起來像是在條件爲null時,根據條件爲null,將多個值插入@tempdata數組無效。

未設置@something時,如何向@tempdata添加多個值。

我試着這樣做

when @something is null then 'temp1,temp2' 

,然後試圖通過分隔符逗號分割,然後添加到@tempdata,但在SQL分裂看起來並不容易。

感謝您的期待。

+1

你可能最好把你的每個案例分成一個'if'-'else'結構。 –

+0

謝謝。我做到了。它的工作。有沒有辦法讓上述工作在case..when語句中。現在只是好奇。 :) – user3606175

回答

0

您需要使用IF聲明,然後插入SELECT... UNION ALL

Declare @something varchar(100) 
Declare @tempdata TABLE (temp varchar(100)) 

IF @something is null 
BEGIN 
    INSERT INTO @tempdata (temp) 
    SELECT 'temp1' UNION ALL 
    SELECT 'temp2' 
END 

select * from @tempdata 
相關問題