sql server 补齐0学习总结

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)
========

你可能感兴趣的:(转载,数据库)