我有一张名为AAA
的表格。当我按AAA
订购表COLUMNI
时,有一个COLUMNJ
需要输入值“BINXXXXX”
其中“BINXXXXX”每次需要增加1。例如,“BIN00001”,然后是“BIN00002”等....一直到最后。我按COLUMNI
订购时需要执行此操作。
有没有好办法呢?
答案 0 :(得分:3)
UPDATE a
SET a.COLUMNJ = b.COLUMNJ
FROM dbo.AAA a
INNER JOIN
(SELECT COLUMNI,
COLUMNJ =
'BIN' + RIGHT('0000'+ CONVERT(VARCHAR(8),ROW_NUMBER()OVER(ORDER BY COLUMNI ASC)),5)
FROM dbo.AAA)b
ON b.COLUMNI = a.COLUMNI
借用Tim上面的工作,这应该用正确的值更新你的表。当然,假设COLUMNI是独一无二的。
P.S。我还没有足够的代表发表评论,所以这就是答案。
答案 1 :(得分:1)
SELECT COLUMNI,
COLUMNJ =
'BIN' + RIGHT('0000'+ CONVERT(VARCHAR(20),ROW_NUMBER()OVER(ORDER BY COLUMNI ASC)),5)
FROM dbo.AAA
UPDATE
部分对我来说并不清楚,但这里有一个使用CTE的例子:
WITH CTE AS (
SELECT AAA.*,
BIN_Num = 'BIN'
+ RIGHT('0000'+ CONVERT(VARCHAR(20), ROW_NUMBER() OVER (
ORDER BY COLUMNI ASC)), 5)
FROM dbo.AAA)
UPDATE CTE SET COLUMNJ = BIN_Num