SQLServer中查询的数字列前面补0返回指定长度的字符串
角本如下:
/****** Script for SelectTopNRows command from SSMS ******/
SELECT TOP 1000 [ID]
,[SN]
,[Name]
FROM [EduDB].[dbo].[TestTab]
select Right('0123456',SN) from TestTab;
select RIGHT(REPLICATE('0',5)+CAST(SN AS varchar(10)),5) AS 'SN' from TestTab;
select RIGHT('00000000'+CAST(SN as varchar(10)),5) as 'sn' from TestTab
复制代码
效果如下:
http://www.cnblogs.com/songxingzhu/p/4151184.html
========
SQL SERVER自动在前面补0满足10位怎么写
SELECT
right(cast('000000000'+convert(int,code)as varchar(20)),10),code,
id,pydate,isnull(lzdate,'9999-12-31'),0
FROM zlemployee
工号的类型是INT的,请问为什么用ID就可以呢?为什么用CODE就不行了?
已经搞定了,一定在临时表中char转int,不能直接转
咱们来看:
1
cast('000000000'+convert(int,code)as varchar(20))
首先:
convert(int,code) :你把code 转为 int
然后
'000000000'+convert(int,code)我估计sqlserver肯定把表达式作为数字相加了,那么0000...的相加就没有作用了。
最后
就不是你要的结果了。
大致应该这样:
1
2
3
4
SELECT
right(cast('000000000'+rtrim(code) as varchar(20)),10),code,
id,pydate,isnull(lzdate,'9999-12-31'),0
FROM zlemployee
========
请教,我想将一个字段值在SQL语句中,自动补齐位数,是否可以做到,有这样的函数么?
比如为 3时,
select 的结果是 '003',
为333时,结果就是 '333'
这样在sql里,能否直接做到呢??
update 表 set 字段 = right('000' + cast(字段 as varchar),3)
select right('000' + cast(col as varchar(10),3) as col from [table]
========
SQL语句 不足位数补0
select RIGHT('0000'+CAST( '123' AS nvarchar(50)),4) DWBH
公式 RIGHT('位数'+CAST(要判断的字段 AS nvarchar(50)),位数 )
http://www.cnblogs.com/zhuxiaohui/archive/2013/06/02/3114465.html
========
sql server 左补齐0
http://my.oschina.net/ind
select RIGHT('00000'+'1',5)
问题:需要格式为00001、00002、00003、00004 ... 00010 ... 00100 ...
思路:用5个长度的00000,去拼接后面自增的数字(必须转为字符),然后从右侧开始截取5个长度。
========
Oracle和SQLServer补齐字符串的方法
Oracle:Lpad函数
[sql] view plain copy
语法格式如下:
lpad( string, padded_length, [ pad_string ] )
string
准备被填充的字符串;
padded_length
填充之后的字符串长度,也就是该函数返回的字符串长度,如果这个数量比原字符串的长度要短,lpad函数将会把字符串截取成从左到右的n个字符;
pad_string
填充字符串,是个可选参数,这个字符串是要粘贴到string的左边,如果这个参数未写,lpad函数将会在string的左边粘贴空格。
实例:
[sql] view plain copy
select lpad(22,10,'0') from dual;
结果:
1 0000000022
SQLServer:right函数
语法
Right(string, length)
Right 函数的语法具有下面的命名参数:
部分
说明
string
必要参数。字符串表达式,从中最右边的字符将被返回。如果 string 包含 Null,将返回 Null。
length
必要参数;为 Variant (Long)。为数值表达式,指出想返回多少字符。如果为 0,返回零长度字符串 ("")。如果大于或等于 string 的字符数,则返回整个字符串。 示例:
right(replicate('0',10)+ltrim(参数),10)
========