在列的前面添加零

时间:2014-07-07 17:49:30

标签: sql sql-server

我有一个最大大小为9个字符的列,我想查看所有小于9的行。

SELECT *
FROM tEmpCourseAssoc
WHERE ({ fn LENGTH(EmployeeID) } < 9)

现在我想在EmployeeID列的前面添加零,如果它少于9个字符,那么它最多可以添加9个字符。例如,如果EmployeeID列为1234567,则会更新为001234567,如果为12345678,则会更新为012345678

我认为它类似于:

SELECT RIGHT('0000000' + CAST(myField AS VARCHAR), 9)

但我不确定如何实现这一点。我计划直接从企业管理器中排除查询。 EmployeeID列是varchar(10)类型

3 个答案:

答案 0 :(得分:1)

你可以试试这个

UPDATE  tEmpCourseAssoc SET
        EmployeeID= RIGHT(REPLICATE('0',9) + EmployeeID, 9)
WHERE   LEN(EmployeeID) < 9

答案 1 :(得分:0)

SELECT     RIGHT(REPLICATE('0', 9) + EmployeeID, 9) AS Expr1
FROM         tEmpCourseAssoc
WHERE     ({ fn LENGTH(EmployeeID) } < 9)

答案 2 :(得分:0)

SELECT     RIGHT(REPLICATE('0', 9) + CAST(EmployeeID AS varchar), 9) AS Res
FROM         tEmpCourseAssoc
WHERE     ({ fn LENGTH(EmployeeID) } < 9)

SQL FIDDLE DEMO