在CASE WHEN条件中添加INSERT语句

时间:2013-01-03 07:55:01

标签: sql sql-server sql-server-2008

我的代码:

   'Status' = 
       CASE  
           WHEN @ID = 2 AND Stud.Status = 'N' THEN 'To Be Submitted'
           WHEN Stud.Status = 'N' THEN 'N/A' 
           ELSE ISNULL(Stud.Status, '') 
        END

如果满足第一个条件,我想添加Insert语句,即在以下代码之后。如何在此处添加Insert语句。

WHEN @ID = 2 AND Stud.Status = 'N' THEN 'To Be Submitted'

感谢。

2 个答案:

答案 0 :(得分:2)

INSERT INTO [DestinationTable]
SELECT
    [MyColumn1]
FROM
    [SourceTable]
WHERE
    @ID = 2 AND
    Stud.Status = 'N'

答案 1 :(得分:0)

我会将您的查询添加到商店过程中,将您的第一个查询添加到temp table,然后将其拆分为您需要的内容...例如:

DECLARE @TempTable TABLE (Name NVARCHAR(50), Status NVARCHAR(50))

INSERT INTO @TempTable
SELECT Name, 
   CASE  
       WHEN @ID = 2 AND Stud.Status = 'N' THEN 'To Be Submitted'
       WHEN Stud.Status = 'N' THEN 'N/A' 
       ELSE ISNULL(Stud.Status, '') 
    END as Status
FROM [Table]
WHERE [column] = 'value';

然后使用该临时表执行插入

INSERT INTO [MyTable]
SELECT TOP 1 Name, Status 
FROM @TempTable
WHERE Status = 'To Be Submitted';

这样您只需插入所需内容

  

如果满足第一个条件,我想添加一个Insert语句

TOP 1将确保