根据case / when语句将多个值插入表结构中

时间:2015-05-07 00:53:46

标签: sql-server-2012

我有必要这样做。

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

看起来根据条件为空时在@tempdata数组中插入多个值是无效的。

如果未设置@something,如何向@tempdata添加多个值。

我试过这个

when @something is null then 'temp1,temp2'

然后尝试用分隔符逗号分割它,然后添加到@tempdata,但是在sql中拆分看起来并不容易。

感谢您的光临。

1 个答案:

答案 0 :(得分: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