我想把不满5位的数字在前面用0补足,比如1转化成0001,2转化成0002。用asp或者sql函数该怎么写
谢谢。
谢谢。
解决方案 »
- SQL查询数据生成XML文件
- 超难的SQL,语句!望高手帮忙
- 关于SQL Server 2000中作业文件语句?
- 字段varchar到nvarchar时,怎么将数据后面的空格去掉?
- select with(readpast)取得的资料是未committed的问题
- 查不到记录
- sql 里的Split要怎么 用
- 读取sql 2005维护计划里面内容
- 想查询数据库中拥有名字为“abc”的字段的所有的表的名称
- sql server记录程序对他的操作吗?(比如添加,删除)如果有,我怎么察看呢?
- 在两个表中通过外键创建联接关系是不是这两个字段名一定必须相同?
- Yukon系列问题2: yukon无法在win2003上安装.如何解决
i=你要转换的数字
if i<10 then
a="000"+cstr(i)
elseif i<100 then
a="00"+cstr(i)
elseif i<1000 then
a="0"+cstr(i)
else
a=cstr(i)
end if a是你想要的数字
%>
declare @num int
set @num=34
set @str=cast(@num as varchar(20))
if (len(@str)<5)
begin
set @str=substring('00000',1,5-len(@str))+@str
end
print(@str)
本示例使用 Space 函数来生成一个字符串,字符串的内容为空格,长度为指定的长度。Dim MyString
' 返回 10 个空格的字符串。
MyString = Space(10)' 将 10 个空格插入两个字符串中间。
MyString = "Hello" & Space(10) & "World"
set @i = 1
select right(cast(100000 + @i as varchar),5)
set @NewAmountUnitNo1=replace(@NewAmountUnitNo1,' ','0')
right('00000'+@str,5)//@str为你要补0的字符串
create function f_adds(@num int,@len int )
returns varchar(20)
as
begin
declare @s varchar(20)
set @s=right(replicate('0',@len)+ltrim(cast(@num as varchar(20))),@len)
return @s
end
---
---@len 表示字符串的长度
select dbo.f_adds(34,5)
--结果 '00034'
num1从第几位开始转换
num2转换几位
string2,要转换的字符串
如果不定数字的话,可以取要转换的数字,用len()得到位数
num1:5-len(num)
num2:len(num)
string2:num
declare @a int
select @a=100 --@a 为你要转换的数字
select right(cast(100000+@a as varchar),5)
returns char(4)
as
begin
return right(cast(10000+@a as char(5)),4)
end----调用:
select dbo.得到字符编号(1)
select dbo.得到字符编号(45)
select dbo.得到字符编号(100)select dbo.得到字符编号(你的int列名) from 你的表
returns char(5)
as
begin
return right(cast(100000 + @i as varchar),5)
end
select replace(str(1,5,0),' ','0')
可以得到'00001'