Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如果没有零,则向返回值添加零_Sql Server_Sql Server 2008_Tsql - Fatal编程技术网

Sql server 如果没有零,则向返回值添加零

Sql server 如果没有零,则向返回值添加零,sql-server,sql-server-2008,tsql,Sql Server,Sql Server 2008,Tsql,以下查询从my db返回以下示例数据 select mobileno from Person 样本结果: 775623655 0758956556 0756899955 777325656 如果返回值中没有0,如何在前面添加0?使用复制: SELECT CASE LEFT(mobileno,1) WHEN '0' THEN mobileno ELSE '0' + isNull(mobileno,'') end as mobileno FROM Person SE

以下查询从my db返回以下示例数据

select mobileno
from Person
样本结果:

775623655
0758956556
0756899955
777325656

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

使用
复制

SELECT CASE LEFT(mobileno,1) 
    WHEN '0' THEN mobileno
    ELSE '0' + isNull(mobileno,'')
    end as mobileno
FROM Person 
SELECT 
  RIGHT(REPLICATE('0', 10) + CAST(mobileno AS VARCHAR(10)), 10) AS mobileno
FROM person;
请在此处查看它的实际操作:


是否要确保它始终以0开头,长度为10?单向:


请检查以下查询。你可以这样做:

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

+1,可能将其设置为
,否则“0”将为空(mobileno.)
理论上这是正确的,因为OP没有指定ID有10个字符。@joao:看看他想要的结果。它总是最多填充10个字符。这应该很简单,你尝试过什么吗?@LittleBobbyTables你想让我展示我尝试过的吗?+1因为这是我最喜欢的方式;-)问题没有指定该列为10个字符。如果是因为国家代码而超过10的数字呢。
SELECT REPLACE(STR(mobileno, 10, 0), ' ', '0')
FROM dbo.Person
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