暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 我有5列。我需要选择前两个不空值

askTom 2017-03-30
189

问题描述

嗨,汤姆,
我有5列。我需要选择前两个非null值。我使用了COALESCE (c1,c2,c3,c4,c5),它将给出第一个非null值。

我移动到变量var1。

如果NULLIF(var1,c1),则合并 (c2,c3,c4,c5) 以获得第二个不为空。

否则,如果NULLIF(var1,c2),则合并 (c3,c4,c5) 以获得第二个不为空。

等等。


有没有其他方法可以从五列列表中获取第二个not null值。

谢谢,
普里亚




专家解答

你可以用一点正则表达式

<代码>
SQL> 带t as
2 (
3从双联全部中选择11 c1,12 c2,13 c3,14 c4,15 c5
4从双并集中选择11 c1、空c2、空c3、14 c4、15 c5
5从双并集中选择空c1、空c2、13 c3、14 c4、15 c5
6从对偶中选择空c1,12 c2,空c3,14 c4,15 c5
7)
8选择c1,c2,c3,c4,c5,
9 regexp_substr (
10 ',' | | c1 | | ',' | c2 | | ',' | c3 | | ',' | c4 | | ',' | | c5 | | ','
11 ',([[:alnum:]] ),1,1,'i',1) elet1,
12 regexp_substr (
13 ',' | | c1 | | ',' | c2 | | ',' | c3 | | ',' | c4 | | ',' | | c5 | | ','
14 ',([[:alnum:]] ),1,2,'i',1) elem2
15从t;

C1 C2 C3 C4 C5 eles1 ELEM2
-
11 12 13 14 15 11 12
11 14 15 11 14
13 14 15 13 14
12 14 15 12 14

<代码>

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论