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.



参考链接:
http://publib.boulder.ibm.com/infocenter/db2luw/v9//topic/com.ibm.db2.udb.admin.doc/doc/r0023197.htm
http://publib.boulder.ibm.com/infocenter/db2luw/v9//topic/com.ibm.db2.udb.admin.doc/doc/r0023198.htm


猜你喜欢

转载自wangyl93-dl-cn.iteye.com/blog/1448137