【发布时间】:2016-04-04 17:45:16
【问题描述】:
我想知道是否有一种简单的方法可以做到这一点,而不是在这里重新发明轮子。我正在使用 SSMS。有一个数字 JKTUTS0 需要自动递增。所以下一个将是 JKTUTS1、JKTUTS2、JKTUTS3... 然后是 JKTUTT0
这是我到目前为止所拥有的,但它似乎过于复杂,我被困在这一点上。 (这不是主键。)有没有更简单的方法可以做到这一点,或者有人可以帮我吗?我对这一切还是陌生的。谢谢。
DECLARE @IssueRecid CHAR(15) = (SELECT MAX(recid) FROM InventoryIssues)
DECLARE @IssueNumber CHAR(10) = (SELECT IssueNumber FROM InventoryIssues WHERE recid=@IssueRecid)
-- Returns JKTUTS0
DECLARE @IssueNumber1 CHAR(1) = (SELECT LEFT (@IssueNumber, 1))
DECLARE @IssueNumber2 CHAR(1) = (SELECT SUBSTRING (@IssueNumber, 2,1))
DECLARE @IssueNumber3 CHAR(1) = (SELECT SUBSTRING(@IssueNumber, 3,1))
DECLARE @IssueNumber4 CHAR(1) = (SELECT SUBSTRING(@IssueNumber, 4,1))
DECLARE @IssueNumber5 CHAR(1) = (SELECT SUBSTRING(@IssueNumber, 5, 1))
DECLARE @IssueNumber6 CHAR(1) = (SELECT SUBSTRING(@IssueNumber, 6, 1))
DECLARE @IssueNumber7 CHAR(1) = (SELECT SUBSTRING(@IssueNumber, 7, 1))
IF @IssueNumber7 = 9
BEGIN
DECLARE @NewIssueNumber7 CHAR(1) = 0
DECLARE @NewIssueNumber6 CHAR(1) = needs to be the letter after S
【问题讨论】:
-
您使用的是哪个 RDBMS? MySQL? SQL 服务器?请在您的问题中引用它并标记它,因为它将吸引更多能够提供帮助的用户
-
SSMS,抱歉。我还是新手。
-
不要自己编写自动递增的列。伊势身份。这就是它在那里的原因。要生成您想要的数据,您可以在选择时生成它或作为计算列生成它。
-
对不起,我不明白你的意思。
-
数字 1 到 6 是否始终为字母,数字 7 是否始终为数字?字母数字总是 A..Z,数字总是 0..9?
标签: sql sql-server ssms increment alpha