使用前导零更新列

问题描述 投票:0回答:1

希望有人能帮忙。我正在尝试在 GPF4 列中少于 10 位数字的任何结果前面填充零。 GPF4 列被设计为数字(18,0),稍后我将把这个数字转换为具有反转对的十六进制。 结果没有任何变化

这是尝试在前面填充零的代码

UPDATE Filter_All
SET GPF4 = RIGHT(CONVERT(varchar(10), REPLICATE('0', 10 - LEN(GPF4)) + CONVERT(varchar(10), GPF4)) + CONVERT(varchar(10), GPF4), 10)
WHERE LEN(GPF4) < 10
  • GPF4中的实际号码821295578

  • 预期结果0821295578

  • 结果为 821295578(无变化)

我又累了,这次成功了,但是结果是用 GPF4 中受影响行的最后一位数字填充的

UPDATE Filter_All
SET GPF4 = RIGHT(CONVERT(varchar(10), REPLICATE('0', 10 - LEN(GPF4)) + CONVERT(varchar(10), GPF4)) + CONVERT(varchar(10), GPF4), 10)
WHERE LEN(GPF4) < 10
  • GPF4中的实际数字821295578
  • 预期结果0821295578
  • 结果为 8821295578

这是尝试在前面填充零的代码

UPDATE Filter_All
SET GPF4 = RIGHT(CONVERT(varchar(10), REPLICATE('0', 10 - LEN(GPF4)) + CONVERT(varchar(10), GPF4)) + CONVERT(varchar(10), GPF4), 10)
WHERE LEN(GPF4) < 10
  • GPF4中的实际数字821295578
  • 预期结果0821295578
  • 结果为 821295578(无变化)

我又累了,这次成功了,但是结果是用 GPF4 中受影响行的最后一位数字填充的

UPDATE Filter_All
SET GPF4 = RIGHT(CONVERT(varchar(10), REPLICATE('0', 10 - LEN(GPF4)) + CONVERT(varchar(10), GPF4)) + CONVERT(varchar(10), GPF4), 10)
WHERE LEN(GPF4) < 10
  • GPF4中的实际数字821295578
  • 预期结果0821295578
  • 结果为 8821295578
sql sql-server sql-server-2014
1个回答
0
投票

尝试按如下方式使用串联:

SELECT GPF4
    ,CONCAT(REPLICATE('0',10 - LEN(GPF4)),GPF4)
FROM table_name
--WHERE LEN(GPF4)<10

上面的示例提供了带有 GPF4 和填充 GPF4 的输出

您可以在更新语句中尝试相同的逻辑。

希望这有效。如果有效请采纳答案。

© www.soinside.com 2019 - 2024. All rights reserved.