截取字符串。。。。。

Landa_Jimmy 2015-03-28 03:03:44

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


如何把前面的0截取掉??
...全文
172 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
BiChangQing 2015-03-31
  • 打赏
  • 举报
回复
又学了一招.....
中国风 2015-03-30
  • 打赏
  • 举报
回复
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
满天飞雪No1 2015-03-30
  • 打赏
  • 举报
回复
SELECT '000000001250003182' AS ID into #table UNION ALL SELECT '0000DT0002' UNION ALL SELECT '0001298989' select * from #table select case when ISNUMERIC(ID)=1 then cast(CAST(id as bigint) as varchar(50)) else substring(id,patindex('%[A-Z]%',ID),50) end,* from #table
薛定谔的DBA 2015-03-28
  • 打赏
  • 举报
回复
SELECT ID,REPLACE(LTRIM(REPLACE(ID,0,' ')),' ',0)
FROM(
	SELECT '000000001250003182' AS ID UNION ALL
	SELECT '0000DT0002' UNION ALL
	SELECT '0001298989' 
)TAB
卖水果的net 2015-03-28
  • 打赏
  • 举报
回复

-- 写一个自定义函数吧

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 行受影响)


27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧