DB2 V9新增的字符串标量函数STRIP
DB2 V9新增的字符串标量函数STRIP
环境
产品:DB2 UDB
平台:Linux Unix Windows
版本:V9 V9.5
问题
从DB2 V9开始,新增加了一个字符串标量函数 STRIP,方便开发者处理字符串。
注:为了显示空格,以下用#指示字符串的起止位置
解答
在 DB2 程序开发中,用户有时可能需要去掉某个字符串前面或后面的空格或是“0”字符, 如:
原字符串 希望得到的字符串
--------- ----------------
#00000999000# #999#
# 999 # # 99#
# 99 9 # # 99 9#
#00990090000# #990090000#
在DB2 V8.2 以前,开发者一般采用REPLACE,或者LTRIM,RTRIM相结合的方式来实现。从V9.1开始,我们可以用STRIP函数或者TRIM函数来实现,在这里简单介绍一下STRIP函数,TRIM函数用法类似,有兴趣的读者可以查阅 DB2 的 SQL参考手册。
STRIP函数的语法如下:
>>-STRIP--(---string --expression-- + ----------------------+---)->< '-,--+--BOTH----+--+----+---' +--LEADING-+ +--L-------+ +--TRAILING+ '-T---------' B:BOTH表示两头 L:LEADING表示去头 T:TRAILING表示去尾 strip-character:表示要截去的单个字符常量
用上面的字符串举例如下:
db2 "select '#'||strip('00000999000',b,'0')||'#' from sysibm.sysdummy1" 1 ------------- #999# 1 record(s) selected. db2 "select '#'||strip(' 999 ',t,' ')||'#' from sysibm.sysdummy1" 1 ------------- # 999# 1 record(s) selected. db2 "select '#'||strip(' 99 9 ',t,' ')||'#' from sysibm.sysdummy1" 1 ------------- # 99 9# 1 record(s) selected. db2 "select '#'||strip('00990090000',l,'0')||'#' from sysibm.sysdummy1" 1 ------------- #990090000# 1 record(s) selected.