问题描述
嗨,汤姆,
我有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值。
谢谢,
普里亚
我有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
<代码>
<代码>
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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




