db2 字符串处理
1个回答
2014-08-12
展开全部
先写一个 REVERSE 函数, 用于字符串反转。
(REVERSE 函数 Oracle 和 SQL Server 都有的, DB2 有可能没有。)
你可以去百度查下 “db2 REVERSE” 这样的关键字。
调用的时候, 就是 REVERSE ( 'test_ip_steal' )
返回结果是 laets_pi_tset
然后使用 POSSTR , 找到 反转后的 第一个 _ 的位置。
就是 POSSTR ( REVERSE ( 'test_ip_steal' ) )
相当于 POSSTR ( 'laets_pi_tset' )
返回结果是 6
然后用 SUBSTR 函数, 取得 后面的信息
就是 SUBSTR ( REVERSE ( 'test_ip_steal' ), POSSTR ( REVERSE ( 'test_ip_steal' ) + 1 )
相当于 SUBSTR ( 'laets_pi_tset' , 6+1 )
返回结果是 pi_tset
最后再把上面的结果, 再反转一次, 就是你要的最终结果了。
REVERSE (
SUBSTR ( REVERSE ( 'test_ip_steal' ), POSSTR ( REVERSE ( 'test_ip_steal' ) + 1 )
)
(REVERSE 函数 Oracle 和 SQL Server 都有的, DB2 有可能没有。)
你可以去百度查下 “db2 REVERSE” 这样的关键字。
调用的时候, 就是 REVERSE ( 'test_ip_steal' )
返回结果是 laets_pi_tset
然后使用 POSSTR , 找到 反转后的 第一个 _ 的位置。
就是 POSSTR ( REVERSE ( 'test_ip_steal' ) )
相当于 POSSTR ( 'laets_pi_tset' )
返回结果是 6
然后用 SUBSTR 函数, 取得 后面的信息
就是 SUBSTR ( REVERSE ( 'test_ip_steal' ), POSSTR ( REVERSE ( 'test_ip_steal' ) + 1 )
相当于 SUBSTR ( 'laets_pi_tset' , 6+1 )
返回结果是 pi_tset
最后再把上面的结果, 再反转一次, 就是你要的最终结果了。
REVERSE (
SUBSTR ( REVERSE ( 'test_ip_steal' ), POSSTR ( REVERSE ( 'test_ip_steal' ) + 1 )
)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询