DB2 for IBM i(AS400)查询substr

时间:2015-01-27 21:53:15

标签: sql ibm-midrange db2-400

我在as400数据库中有48/50 g我希望在#34; /"之前(查询)substr在50和g之间的空格之前。

我得到的结果是50

我现在正在寻找几个小时,试着尝试但没有运气。

欢迎任何帮助。

谢谢!

1 个答案:

答案 0 :(得分:4)

您想使用LOCATE()函数...
假设第一个空格是你想要的那个空格将起作用:

--create variable mystr char(10) default('48/50 g') 
select substr(mystr                 
              , locate('/'          
                       , mystr) + 1 
              , locate(' '          
                       , mystr)     
                 - (locate('/'       
                           , mystr) + 1)  
              )                     
from sysibm.sysdummy1               

但是,如果这是一个经常需要的功能。考虑创建一个用户定义的函数(UDF),它将以这种方式解析和拆分字符串。