gpt4 book ai didi

sql - 在 SQL 查询条件下添加重复行

转载 作者:行者123 更新时间:2023-12-02 06:26:51 25 4
gpt4 key购买 nike

假设有两个数据行:

with
data_table (title, val_a, val_b) as (
select 'A', 1, 1 from dual union all
select 'B', 1, 2 from dual
)
select *
from data_table;

我想创建一个 SQL 查询,它在 VAL_A <> VAL_B 时复制一行,返回三行,如:

| TITLE | VAL_A | VAL_B |  MARKER    |
--------------------------------------
| 'A' | 1 | 1 | 'SINGLE' |
| 'B' | 1 | 2 | 'MULTIPLE' |
| 'B' | 1 | 2 | 'MULTIPLE' |

并且从大表中选择两次是不合适的data_table (联合所有,...)。

最佳答案

您可以使用不等式的自连接:

with
data_table (title, val_a, val_b) as (
select 'A', 1, 1 from dual union all
select 'B', 1, 2 from dual
)
select d1.*, nvl2(d2.title,'MULTIPLE','SINGLE') as marker
from data_table d1
left join data_table d2 on d1.val_a <> d1.val_b
where d2.val_a is null
or ( d2.val_a is not null and d2.val_a = d2.val_b );

Demo

关于sql - 在 SQL 查询条件下添加重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57572293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com