DB2 for IBM i (AS400) 查询子字符串

DB2 for IBM i (AS400) query substr

我在 as400 数据库中有 48/50 g,我想在“/”之前和 space 之前(查询)substr 在 50 和 g 之间。

我应该得到的结果是 50

我现在正在搜索几个小时并尝试尝试但没有运气。

欢迎任何帮助。

谢谢!

您想使用 LOCATE() 函数...
假设第一个 space 是您想要的那个,以下将起作用:

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

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