Sql 返回字符串中的单词

Sql 返回字符串中的单词,sql,oracle,varchar2,Sql,Oracle,Varchar2,如何返回varchar2数据类型中的第二个单词,如果没有,则返回空白?其思想是在函数中使用函数。substr(列,instr(列,)+1) 编辑(仅适用于第二个单词): substr(列、仪表(列)、仪表(列)、仪表(列)、仪表(列)+1-仪表(列) 再次编辑: 正如Colin所指出的,REGEXP_SUBSTR(col,“\S+”,1,2)可能是一种更好的方法正则表达式可能就是您所需要的。在regexp\u substr函数中使用它。我正要发布此。。。这里是sqlfiddle:它如何只返回第二

如何返回varchar2数据类型中的第二个单词,如果没有,则返回空白?其思想是在函数中使用函数。

substr(列,instr(列,)+1)

编辑(仅适用于第二个单词):

substr(列、仪表(列)、仪表(列)、仪表(列)、仪表(列)+1-仪表(列)

再次编辑:


正如Colin所指出的,
REGEXP_SUBSTR(col,“\S+”,1,2)
可能是一种更好的方法

正则表达式可能就是您所需要的。在regexp\u substr函数中使用它。我正要发布此。。。这里是sqlfiddle:它如何只返回第二个单词而不返回后续单词呢?它不返回。我刚刚测试了itSo
select substr('一两三',instr('一两三','')+1)from dual
只返回“二”?我希望是“二三”。注意
\w
\S
之间的区别。在这种情况下,您可能需要后者。我想我更喜欢这种解决方案!
regexp_substr(column, '\S+', 1, 2)