[英]IF Else statements in SQL Update Query
UPDATE [dbo].[TempTable] SET [Level1] = CASE WHEN A = -1 THEN 0 ELSE A END ,[Level2] = CASE WHEN A = -1 THEN 0 ELSE A END;
You need to use CASE
in such scenarios.在这种情况下,您需要使用
CASE
。 Try the above query..试试上面的查询..
If you insist on using IF , you can try the following:如果您坚持使用IF ,您可以尝试以下操作:
IF如果
IF A = -1 BEGIN UPDATE [dbo].[TempTable] SET [Level1] = 0 ,[Level2] = 0 END ELSE BEGIN UPDATE [dbo].[TempTable] SET [Level1] = A ,[Level2] = A END
IIF国际金融研究所
UPDATE [dbo].[TempTable] SET [Level1] = IIF(A = -1, 0, A) ,[Level2] = IIF(A = -1, 0, A)
You can use CASE statement, and If "A" is one of the column in your dbo.TempTable您可以使用 CASE 语句,如果“A”是 dbo.TempTable 中的列之一
DECLARE @Table TABLE(A INT,Level1 INT,Level2 INT)
INSERT @Table
SELECT -1, NULL, NULL UNION ALL
SELECT 1,NULL,NULL
UPDATE t SET
Level1 = CASE WHEN A = -1 THEN 0 ELSE A END,
Level2 = CASE WHEN A = -1 THEN 0 ELSE A END
FROM @Table t
SELECT * FROM @Table
-- Result - 结果
A Level1 Level2
-1 0 0
1 1 1
With case or IIF ;)带案例或 IIF ;)
UPDATE [dbo].[TempTable]
SET [Level1] = IIF(A = -1 , 0 , A), [Level2] = IIF(A = -1 , 0 , A)
This will work :这将工作:
UPDATE [dbo].[TempTable]
SET [Level1] = IIF(A = -1, 0, A), [Level2] = IIF(A = -1, 0, A);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.