Sql server 使用case条件插入到表中

Sql server 使用case条件插入到表中,sql-server,stored-procedures,Sql Server,Stored Procedures,我有一个表,在这个表中,我必须检查列'Type'是否包含数据值'V',然后我必须将其插入为'F',否则没有任何更改 我正在使用下面的,并得到一个错误作为不正确的语法附近的情况 INSERT INTO [dbo].[Table] ([A] ,[B], [C],[D] , CASE [Type] WHEN 'F'THEN 'V' else [Type] as Service type,[E]) select ([A] ,[B],

我有一个表,在这个表中,我必须检查列'Type'是否包含数据值'V',然后我必须将其插入为'F',否则没有任何更改

我正在使用下面的,并得到一个错误作为不正确的语法附近的情况

INSERT INTO [dbo].[Table]
           ([A] ,[B],
           [C],[D] , CASE [Type] WHEN 'F'THEN 'V' else [Type] as Service type,[E]) select   ([A] ,[B],
           [C],[D] ,[Type],[E]   from   [dbo].[Table2]

您的insert语句出现错误,请按照下面的
case
expression进行更正

INSERT INTO [dbo].[Table] ([A], [B], [C], [D], [Type], [E]) 
SELECT [A], [B], [C], [D],
       CASE [Type] WHEN 'V'THEN 'F' else [Type] end [Type],[E]
FROM [dbo].[Table2];

在这里,您有效地混合了使用
SELECT
INSERT
语句以及使用
值的语法。
INSERT INTO [dbo].[Table] ([A], [B], [C], [D], [Type], [E]) 
SELECT [A], [B], [C], [D],
       CASE [Type] WHEN 'V'THEN 'F' else [Type] end [Type],[E]
FROM [dbo].[Table2];