解析nvarchar列并添加前导0

时间:2018-06-25 20:43:32

标签: sql sql-server

我有一个表,该表的列为nvarchar。我想针对当前具有值的任何行(仅当其值小于1,000时)更新该列。

伪代码:

UPDATE TABLE_NAME
IF (PARSE(TABLE_NAME.COLUMN) < 1000)
    SET TABLE_NAME.COLUMN = ADD-LEADING-ZEROS(TABLE_NAME.COLUMN)
ELSE
    do nothing

因此,基本上,如果该列包含值"123",我想将其更新为"0123"。如果是"12",我想将其更新为"0012",等等。

我知道如何pad leading 0s,但是由于对SQL还是很陌生,所以我不确定如何将其合并到更新语句中。

1 个答案:

答案 0 :(得分:2)

您可以使用LEN

UPDATE dbo.YourTable
SET Column = RIGHT('0000'+Column,4)
WHERE LEN(Column) < 4
;