我需要一个去掉右边数字字符的T-SQL脚本



例如

Input: 0123BBB123456  Output: 123456
Input: ABC00123       Output: 00123
Input: 123AB0345      Output: 0345

换句话说,代码应该从右边开始剥离字符,当遇到不是0-9的字符时停止。

我必须对数百万条记录执行此操作,因此我正在寻找一种高效的基于集合的方法,而不是为每条记录在循环中执行子字符串函数的游标方法。

我在尝试格式化此文件以供阅读时遇到问题。给我几分钟时间。

令人沮丧。。。我认为我正在使用的浏览器IE6(由我的公司授权(使这一点具有挑战性。这个网站不适合6。

怎么样;

;with test(value) as (
    select '0123BBB123456' union
    select 'ABC00123' union
    select '123AB0345' union
    select '123'
 )
 select
    value, 
    right(value, patindex('%[^0-9]%', reverse('?' + value)) - 1)
 from test  

0123BBB123456   123456
123             123
123AB0345       0345
ABC00123        00123

最新更新