select replace(ltrim(replace(字段,'0',' ')),' ','0') FROM dbo.USERINFO 先把0替换为空格,再去掉左边的空格,再把空格替换为o
WHEN REPLACE( LTRIM( REPLACE ( t.id, 0, ' ' ) ), ' ', 0 ) = '' THEN 0
ELSE REPLACE ( LTRIM( REPLACE ( t.id, 0, ' ' ) ), ' ', 0 )
END AS num
FROM table
SQL
server
:
1、convert(int,
字段
名)
2、LTRIM(RTRIM(stuff(substring(right(
字段
名,4),2,4),1,patindex('%[^0]%',substring(right(
字段
名,4),2,4))-1,'')))
以上两者的区别是:第一种 如果是0000得到的结果是0 ,第二种得到的结果是
Ipad(‘A’,B,‘0’)
试例:select Ipad(dingdan,8,‘0’)
注释:当dingdan这个
字段
不满8位时,
左边
自动补全0,使其达到8位长度,如A为
字段
则不需加单引,数值的话则需要加上单引
2.右补’0’函数
Rpad(‘A’,B,‘0’)
与Ipad()函数用法一致,不过多解释
在工作过程中遇到一个需求,要从特定
字段
中删除
前导
零
,这是一个简单的VARCHAR(10)
字段
。 例如,如果
字段
包含“00001A”,则SELECT语句需要将数据返回为“1A”。如果是其中只包含0,比如“0000” 返回值为“0”. 解决方案: select CASE
WHEN ColumnName = substring(ColumnName, patindex('%[^0]%',Colu...
SELECT stuff(substring('000004564972000',0,80),1,patindex('%[^0]%',substring('000004564972000',0,80))-1,'')
转载于:https://www.cnblogs.com/BuBu/archive/2013/05/24/3096127.html