sql - 需要在下面的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。
任何人都可以帮忙吗?
解决方案
在 Oracle 中,您可以使用您可以使用 NVL 检查空值并获取一个值,例如:
NVL(regexp_substr('','[^,]+',1,level)), -1)
或者
NVL(regexp_substr('','[^,]+',1,level)), '-1')
推荐阅读
- keras - 添加的图层必须是图层类的实例。成立:
- shell - 用于在 Shell 中迭代 JSON 数组的 JQ 替代方案
- meteor - 如何在 Meteor 编译器插件中包含导入文件?
- garbage-collection - 不知道为什么是25
- awk - 如何使用 sed 或 awk 删除此模式?
- android - 从内部身份验证到 Firebase 的迁移路径
- c++ - 复制具有未初始化成员的结构
- mingw - MinGW Ld 在链接目标文件后创建大小为零的最终可执行文件
- javascript - 尝试使用 JS 函数移动按钮
- crash - Odoo 11:无法更新模块,因为新模板已添加到模块中