如何在MSSQL中增加nvarchar类型

时间:2017-02-22 06:26:13

标签: sql-server

我有一个表格Tab1,其中一列是SELECT t2.id, t1.date FROM table1 t1 right join table2 t2 on t1.id=t2.id [{1}} [MSSQL]的ID。我希望有一个变量,如初始值= Nvarchar(80),然后按001000000010000100100002递增它等等.later使用它来获取tab1。循环中来自此变量的id。任何人都能帮助我吗?

1 个答案:

答案 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);