当前位置:首页 » 编程语言 » sql字符串补位
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql字符串补位

发布时间: 2022-10-01 06:22:01

sql 不够七位数 在左侧自动补零,怎么实现

您好:

跟您一个参考资料

第一种方法:
right('00000'+cast(@countasvarchar),5)
其中'00000'的个数为right函数的最后参数,例如这里是5,所以有5个0
@count就是被格式化的正整数
例如:
1、selectright('00000'+cast(dense_rank()over(orderbyzsbh)asVARCHAR(20)),5)
2、declare@countint
set@count=0
while(@count<1000)
begin
printright('00000'+cast(@countasvarchar),5)
set@count=@count+1
end
第二种方法:使用REPLICATE函数,将字串值重复指定的次数。例如:
REPLICATE('重复',3)输出结果为:重复重复重复
【值得注意的是当integer_expression值为负值,则返回NULL】
因此,补0操作可如下实现:
SELECTREPLICATE('0',5-len('9'))+'9'--左边补0,如00009
SELECT'9'+REPLICATE('0',5-len('9'))--右边补0,如90000
第三种方法:使用stuff函数,删除指定长度的字符,并在指定的起点处插入另一组字符。例如:
第一个字符串abcdef中删除从第2个位置(字符b)开始的三个字符,然后在删除的起始位置插入第二个字符串,从而创建并返回一个字符串。
SELECTSTUFF('abcdef',2,3,'ijklmn')

输出结果为:

aijklmnef。
因此补0操作可如下实现:
selectstuff('00000',len('00000')-len('123')+1,len('123'),'123')

Ⅱ 这样的sql/pl自动补位语句怎么写

create table test( testid int)
insert into test values(357)
insert into test values(2783)
insert into test values(58690)

--你在创建一个表
create table tab(rowid int)
--在向数据库里面插入0到99
insert into tab values(0)
insert into tab values(1)
insert into tab values(2)
insert into tab values(3)
insert into tab values(4)
insert into tab values(5)
insert into tab values(6)
insert into tab values(7)
insert into tab values(8)
insert into tab values(9)
......

select substring(rtrim(str((ltrim(str(testid))+(select left('0000',5-len(testid))))+tab.rowid)),1,10) from test , tab where (5-len(testid))>=len(rowid) or (len(testid)=5 and rowid=0) order by testid,rowid
弄了很久,也不知道你要的结果是不是这个结果,你把这段sql可以考进sqlserver2005或者2000去运行看下结果,上面我只添加了0--9的,你可以添到99在试下。

Ⅲ sql中不足六位的补零该怎么写

假设#a 表有字段 a char(10)

该代码即可实现该功能:

if exists(select a from #a where len(a)<=6)
begin
update #a set a=rtrim(cast(a as char(8)))+'000'
end
else if exists(select a from #a where len(a)<0)
begin
rollback transaction
end
else
begin
print '该数据已经有六位'
end

Ⅳ 在sql语句里怎么右补空格

示例:

右补空格,字符长度定为10

declare@strvarchar(1000)
set@str='123'
selectleft(@str+'',10)

Ⅳ sql位数不足补0

假设结果值用变量a表示,补位用b表示,需求结果用c表示
if len(a)=1 then
b="000"
elseif len(a)=2 then
b="00"
elseif len(a)=3 then
b="0"
else
b=""
end if

c=b&a

Ⅵ sql数据补位

用lapd函数,左补零

用法
select LPAD(100,5,0) from al

100为字段名,5为补完后的长度,0为补充的字符

Ⅶ SQL不够10位 补0 补到10位写何写


咱们来看:

cast('000000000'+convert(int,code)asvarchar(20))

首先:

convert(int,code) :你把code 转为 int

然后

'000000000'+convert(int,code)我估计sqlserver肯定把表达式作为数字相加了,那么0000...的相加就没有作用了。

最后

就不是你要的结果了。


大致应该这样:

SELECT
right(cast('000000000'+rtrim(code)asvarchar(20)),10),code,
id,pydate,isnull(lzdate,'9999-12-31'),0
FROMzlemployee



Ⅷ SQL SERVER自动在后面补0满足8位数请问怎么写

如果是字符串的话,可以通过字符串连接的方式实现,由于SQL Server没有Oracle的lpad和rpad函数,可以使用REPLICATE函数代替
column_name+replicate('0',8-column_name.len()); 缺多少位就补上多少位,

Ⅸ SQL SERVER自动在前面补0满足10位请问怎么写

咱们来看:

cast('000000000'+convert(int,code)asvarchar(20))

首先:

convert(int,code) :你把code 转为 int

然后

'000000000'+convert(int,code)我估计sqlserver肯定把表达式作为数字相加了,那么0000...的相加就没有作用了。

最后

就不是你要的结果了。


大致应该这样:

SELECT
right(cast('000000000'+rtrim(code)asvarchar(20)),10),code,
id,pydate,isnull(lzdate,'9999-12-31'),0
FROMzlemployee

Ⅹ sql字符串如何进行比较.它的原理是什么.为什么要进行补位

sql字符串如何进行比较.它的原理是什么.为什么要进行补位
字符串 不能比较大小 它只能判断是否相等 只有数字才能比较大