【问题标题】:Is there an assignment operator equivalent in SQL Server?SQL Server 中是否有等效的赋值运算符?
【发布时间】:2015-06-03 14:42:06
【问题描述】:

在 php、c 或 java 中,如果我需要添加计数,我只需执行 $value += 1;

我在 sql server 查询中寻找类似的操作。

背景

我有一个表,它使用简化的列 (id1, id2, TheCount) 主键 (id1,id2) 跟踪一些统计信息

我知道 id1、id2 和一个可以是 1、0 或 -1 的“修饰符”值。我想要一个允许我使用修饰符更新计数列的查询。

示例

理论上,这个查询看起来像:

Update TheCounts SET TheCount += :modifier WHERE id1 = :id1 AND id2 = :id2

:... 值是变量。

有什么想法吗?

【问题讨论】:

  • update thecounts set thecount = thecount + :modifier where ...

标签: sql sql-server


【解决方案1】:
Update TheCounts 
   SET TheCount = TheCount + @modifier 
WHERE id1 = @id1 AND id2 = @id2

但如果修饰符可以为 0,则您根本不想更改它。然后你应该检查之前是否,f.e. If..Else 如果它在存储过程中或您执行它的地方。

您也可以在WHERE

WHERE @modifier <> 0 AND id1 = @id1 AND id2 = @id2

【讨论】:

  • 哇,这比我预期的要容易得多。我觉得我应该能够自己解决这个问题。感谢您的回答。
  • 您也可以在 SQL 2012 及更高版本中使用 +=。所以像“set thecount += @modifier
猜你喜欢
  • 1970-01-01
  • 2012-02-08
  • 2013-01-03
  • 2013-04-08
  • 2016-09-28
  • 1970-01-01
  • 2021-08-28
  • 2012-11-02
  • 1970-01-01
相关资源
最近更新 更多