如何声明多个SET

时间:2016-01-04 19:35:47

标签: sql-server tsql

与上一个问题相关,我问过here

如果可能的话,我想帮助如何声明多于SET或CASE。我正在使用SQL Fiddle进行测试,请参阅here

{
 EmpID int,
 startdate  datetime,
 finishdate datetime,
 Discount varchar(4),
 SomeData varchar(4) 
}

UPDATE Persons SET [Discount] = case, [SomeData] = case 
when startdate > dateadd(month,-4,getdate()) and startdate <= getdate()  
then '5%' AND SomeData '<5' 
when startdate < dateadd(month,-4,getdate()) Then '10%' AND SomeData '>4' 
End
SELECT * FROM Persons 

如果有人能帮助我,请提前感谢您。

1 个答案:

答案 0 :(得分:0)

你有很多语法错误,也可能是一些逻辑错误。 我设法编写了无聊的运行,但我怀疑它是否取得了您正在寻找的结果。

请参阅here

您的主要语法/语义问题是:

  1. CASE语句计算set o boolean表达式并返回(单个)值。

  2. someData '<4'实际上没有意义(并且引发错误,因为它只是一个列名后跟一个字符串文字而之间没有操作)。考虑到someData是一个varchar(4),很难说你想要什么。