我有一个表格Tab1,其中一列是SELECT t2.id, t1.date FROM table1 t1 right join table2 t2 on t1.id=t2.id
[{1}} [MSSQL]的ID
。我希望有一个变量,如初始值= Nvarchar(80)
,然后按00100000
,00100001
,00100002
递增它等等.later使用它来获取tab1。循环中来自此变量的id。任何人都能帮助我吗?
答案 0 :(得分:5)
我首先要说的是,如果你想要一个易于增加的变量,NVARCHAR
就不是一个完全可行的方法;但我也假设你有理由这样做。
话虽如此,增加价值就像:
SELECT CAST(<column_name> AS INT) + 1 FROM Tab1;
要插入带前导零的值,您需要进行一些连接:
SELECT '00' + CAST(CAST(<column_name AS INT) + 1 AS NVARCHAR(80)) FROM Tab1;
仅供参考,当您尝试添加1时,SQL Server会自动尝试将NVARCHAR
值转换为INTEGER
值,因此您可以在技术上将其缩短为:
SELECT '00' + CAST(<column_name> + 1 AS NVARCHAR(80));
如果您最终希望达到覆盖这两个前导零的值,那么您以后也需要考虑到这一点。有几种方法可以做到这一点。最简单的是:
SELECT RIGHT('00000' + CAST(<column_name> + 1 AS NVARCHAR(80)),8);