首页 > 解决方案 > 需要在下面的sql查询中返回空字符串行而不是空行

问题描述

SELECT regexp_substr('Apple,Orange,Mango,Grapes','[^,]+',1,level) regexp_substr

FROM dual

  CONNECT BY level<=regexp_count('Apple,Orange,Mango,Grapes',',')+1;

这将返回结果:Apple Orange Mango Grapes

如果我们传递空字符串

SELECT regexp_substr('','[^,]+',1,level) regexp_substr

FROM dual

  CONNECT BY level<=regexp_count('',',')+1;

它返回结果:(空)

如果输出 null,我希望结果为 -1。

任何人都可以帮忙吗?

标签: sqloracle

解决方案


在 Oracle 中,您可以使用您可以使用 NVL 检查空值并获取一个值,例如:

 NVL(regexp_substr('','[^,]+',1,level)), -1)

或者

 NVL(regexp_substr('','[^,]+',1,level)), '-1')

推荐阅读