sql - T-SQL SELECT TOP 值和增量

标签 sql sql-server t-sql stored-procedures

我目前正在 SQL Server 2012 中开发存储过程。我有下表:

Id | SalesAreaId | CollectionId 
---+-------------+-----------
1  |     12      |     1
2  |     7       |     1
3  |     5       |     1

我想选择最高的 CollectionId 并将其增加 +1。

DECLARE @CollectionId INT = 1;

SELECT TOP 1 @CollectionId = [CollectionId]
FROM [MyProject].[Sales]
WHERE [CollectionId] = MAX([CollectionId])

@CollectionId = @CollectionId + 1

因此下一个@CollectionId应该是2,不幸的是这并没有真正起作用......

您知道如何解决这个问题吗?

非常感谢!

最佳答案

只需将其写为:

SELECT @CollectionId = MAX([CollectionId])
FROM [MyProject].[Sales];

通常,您会在 SELECT 中进行增量考虑空表:

SELECT @CollectionId = COALESCE(1 + MAX([CollectionId], 1)
FROM [MyProject].[Sales];

关于sql - T-SQL SELECT TOP 值和增量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43495254/

相关文章:

MySQL 查询删除重复行

mysql - 带有 LIMIT 和 GROUP BY 的 AVG

MySQL 映射表插入约束不起作用

sql-server - 如何使 SSDT Profile.xml SqlCmdVariable 为空字符串或可选

SQL Server XQuery 语法错误

sql - 用于检查邮件配置文件是否在 SQL Server 中启用的脚本

sql-server - ',' 附近的语法不正确。执行 sp_executesql

c# - 将 T-SQL 语句解析为标记

sql - 从具有动态指定数据字段的 XML 标记中获取值

sql - 查询考试成绩计算