动态连接
Dynamic Concatenation
我正在开发一个 table 并且我 运行 遇到了一个问题,我可能会以错误的方式解决这个问题,但我遇到了障碍。我在我的 table 中有 ID,我需要更新它是一个 NVARCHAR(12) 字段,目前它有数字。我需要将其格式化如下:TP0000000001、TP0000000002、...、TP0000245632、...、TP9999999999。我只需要找到一种方法来附加 TP 和尾随零加上整个字符串加起来为 12 的 ID 号。我目前正在使用带有一些硬编码信息的 while 循环,但我需要它是动态的,因为我有大约 14000要更新的记录。
这是我要使用的更新:
UPDATE Vendor
SET TPPRM_ID = <The Formatted Value>
这是当前将数字格式化为正确硬编码的代码,我需要格式化的列是调用 TPPRM_ID,如您在更新中所见。如有任何帮助,我们将不胜感激。
DECLARE @Var NVARCHAR(12)
DECLARE @Counter INT
SET @VAR = 'TP'
SET @Counter = 1
WHILE @Counter <= 12
BEGIN
SET @VAR = @VAR + '0'
SET @Counter = @Counter + 1
IF LEN(@Var) >= 10
BEGIN
SELECT @VAR + '10'
PRINT @VAR
BREAK
END
--PRINT @VAR
END
只需补满零,然后切掉最右边的 10 个字符。然后追加 'TP'
.
SELECT 'TP' + RIGHT(REPLICATE('0',10) + TPPRM_ID),10)
FROM Vendor
另一个解决方案是-
SELECT 'TP' + REPLACE(STR(TPPRM_ID, 10), ' ', 0)
FROM Vendor
我正在开发一个 table 并且我 运行 遇到了一个问题,我可能会以错误的方式解决这个问题,但我遇到了障碍。我在我的 table 中有 ID,我需要更新它是一个 NVARCHAR(12) 字段,目前它有数字。我需要将其格式化如下:TP0000000001、TP0000000002、...、TP0000245632、...、TP9999999999。我只需要找到一种方法来附加 TP 和尾随零加上整个字符串加起来为 12 的 ID 号。我目前正在使用带有一些硬编码信息的 while 循环,但我需要它是动态的,因为我有大约 14000要更新的记录。
这是我要使用的更新:
UPDATE Vendor
SET TPPRM_ID = <The Formatted Value>
这是当前将数字格式化为正确硬编码的代码,我需要格式化的列是调用 TPPRM_ID,如您在更新中所见。如有任何帮助,我们将不胜感激。
DECLARE @Var NVARCHAR(12)
DECLARE @Counter INT
SET @VAR = 'TP'
SET @Counter = 1
WHILE @Counter <= 12
BEGIN
SET @VAR = @VAR + '0'
SET @Counter = @Counter + 1
IF LEN(@Var) >= 10
BEGIN
SELECT @VAR + '10'
PRINT @VAR
BREAK
END
--PRINT @VAR
END
只需补满零,然后切掉最右边的 10 个字符。然后追加 'TP'
.
SELECT 'TP' + RIGHT(REPLICATE('0',10) + TPPRM_ID),10)
FROM Vendor
另一个解决方案是-
SELECT 'TP' + REPLACE(STR(TPPRM_ID, 10), ' ', 0)
FROM Vendor