-1

以下查询从我的数据库返回以下示例数据。

select mobileno
from Person

样本结果:

775623655
0758956556
0756899955
777325656

如果返回值中没有 0,如何在前面添加 0?

4

5 回答 5

3
SELECT CASE LEFT(mobileno,1) 
    WHEN '0' THEN mobileno
    ELSE '0' + isNull(mobileno,'')
    end as mobileno
FROM Person 
于 2013-07-08T15:38:06.133 回答
2
select right('0000000000' + mobileno, 10) mobileno from Person
于 2013-07-08T15:39:23.200 回答
1

使用REPLICATE

SELECT 
  RIGHT(REPLICATE('0', 10) + CAST(mobileno AS VARCHAR(10)), 10) AS mobileno
FROM person;

在这里查看它的实际效果:

于 2013-07-08T15:39:13.617 回答
1

您要确保它始终以 0 开头,长度为 10?单程:REPLACE

SELECT REPLACE(STR(mobileno, 10, 0), ' ', '0')
FROM dbo.Person

演示

于 2013-07-08T15:39:35.957 回答
1

嘿检查以下查询。你可以做这样的事情:

declare @table table (temp VARCHAR(MAX))

insert into @table values('775623655')
insert into @table values('0758956556')
insert into @table values('0756899955')
insert into @table values('777325656')

SELECT RIGHT('000000000' + temp , 10)
FROM @table

SqlFiddle

于 2013-07-08T15:43:41.160 回答