我目前正在 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/