sqlserver补0,sql用0补位
SQL不够10位 补0 补到10位写何写
咱们来看:
成都创新互联公司拥有网站维护技术和项目管理团队,建立的售前、实施和售后服务体系,为客户提供定制化的做网站、成都做网站、网站维护、温江服务器托管解决方案。为客户网站安全和日常运维提供整体管家式外包优质服务。我们的网站维护服务覆盖集团企业、上市公司、外企网站、购物商城网站建设、政府网站等各类型客户群体,为全球超过千家企业提供全方位网站维护、服务器维护解决方案。
cast('000000000'+convert(int,code)as varchar(20))
首先:
convert(int,code) :你把code 转为 int
然后
'000000000'+convert(int,code)我估计sqlserver肯定把表达式作为数字相加了,那么0000...的相加就没有作用了。
最后
就不是你要的结果了。
大致应该这样:
SELECT
right(cast('000000000'+rtrim(code) as varchar(20)),10),code,
id,pydate,isnull(lzdate,'9999-12-31'),0
FROM zlemployee
SQL怎样在固定值后面补0
具体什么数据库?
以sqlserver,mysql,oracle各自为例:
sqlserver:
create table test
(点名 varchar(20));
insert into test values ('HS901');
insert into test values ('HS9010');
insert into test values ('HS9010');
执行:
select LEFT(点名+'00000000',8) from test
结果:
mysql:创建表插入数据过程都差不多,不赘述,执行:
create table test
(点名 varchar(20));
insert into test values ('HS901');
insert into test values ('HS9010');
insert into test values ('HS9010');
结果:
oracle:执行:
select rpad(点名,8,'0') from test
结果:
sql 不够七位数 在左侧自动补零,怎么实现
您好:
跟您一个参考资料
第一种方法:
right('00000'+cast(@count as varchar),5)
其中'00000'的个数为right函数的最后参数,例如这里是5,所以有5个0
@count就是被格式化的正整数
例如:
1、select right('00000'+cast(dense_rank() over( order by zsbh ) as VARCHAR(20)),5)
2、declare @count int
set @count = 0
while (@count 1000)
begin
print right('00000'+cast(@count as varchar),5)
set @count = @count +1
end
第二种方法:使用REPLICATE函数,将字串值重复指定的次数。例如:
REPLICATE('重复',3)输出结果为:重复重复重复
【 值得注意的是当 integer_expression 值为负值,则返回NULL 】
因此,补0操作可如下实现:
SELECT REPLICATE('0',5-len('9'))+'9' --左边补0, 如 00009
SELECT '9' + REPLICATE('0',5-len('9')) --右边补0,如 90000
第三种方法:使用stuff函数,删除指定长度的字符,并在指定的起点处插入另一组字符。例如:
第一个字符串 abcdef 中删除从第 2 个位置(字符 b)开始的三个字符,然后在删除的起始位置插入第二个字符串,从而创建并返回一个字符串。
SELECT STUFF('abcdef', 2, 3, 'ijklmn')
输出结果为:
aijklmnef。
因此补0操作可如下实现:
select stuff('00000',len('00000')-len('123')+1,len('123'),'123')
SQL SERVER自动在前面补0满足10位请问怎么写?
咱们来看:
cast('000000000'+convert(int,code)as varchar(20))
首先:
convert(int,code) :你把code 转为 int
然后
'000000000'+convert(int,code)我估计sqlserver肯定把表达式作为数字相加了,那么0000...的相加就没有作用了。
最后
就不是你要的结果了。
大致应该这样:
SELECT
right(cast('000000000'+rtrim(code) as varchar(20)),10),code,
id,pydate,isnull(lzdate,'9999-12-31'),0
FROM zlemployee
本文名称:sqlserver补0,sql用0补位
标题网址:http://scyanting.com/article/hdjdgs.html