当前位置: 代码迷 >> Sql Server >> 截取字符串。解决方法
  详细解决方案

截取字符串。解决方法

热度:85   发布时间:2016-04-24 09:16:10.0
截取字符串。。。。。

SELECT '000000001250003182' AS ID UNION ALL
SELECT '0000DT0002' UNION ALL
SELECT '0001298989' 


如何把前面的0截取掉??
------解决思路----------------------

-- 写一个自定义函数吧

drop function fn_trim
go
create function fn_trim(@str varchar(max), @ch varchar(1))
returns varchar(max)
AS
begin
while @str like @ch + '%' 
begin
set @str = substring(@str,2,len(@str))
end
return @str 
end 
go

with m as (
SELECT '000000001250003182' AS ID UNION ALL
SELECT '0000DT0002' UNION ALL
SELECT '0001298989' 
)
select id , dbo.fn_trim(id,'0') from m 
go

id                 
------------------ ------------------------------
000000001250003182 1250003182
0000DT0002         DT0002
0001298989         1298989

(3 行受影响)



------解决思路----------------------
SELECT ID,REPLACE(LTRIM(REPLACE(ID,0,' ')),' ',0)
FROM(
SELECT '000000001250003182' AS ID UNION ALL
SELECT '0000DT0002' UNION ALL
SELECT '0001298989' 
)TAB

------解决思路----------------------
WITH T1
AS
(
SELECT '000000001250003182' AS ID UNION ALL
SELECT '0000DT0002' UNION ALL
SELECT '0001298989' UNION ALL
SELECT '1234' )
SELECT ID=STUFF(ID,1,PATINDEX('%[^0]%',ID)-1,'') FROM T1
  相关解决方案