b连接表-a中特定列的行,其中表-a中列的值为零

zpgglvta  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(301)

表-a

X
1
0
0
5
7
0
0

表-b

X
1.2
5.1
8.9
22
24
99.8
15.5

我期望的输出

X
 1
 5.1
 8.9
 5
 7
 99.8
 15.5

表-b的值复制到表-a,其中表-a的值为零

66bbxpm5

66bbxpm51#

sql表表示无序的行集合。为了使之可行,需要在每个表中都有一个排序列。
假设这些存在并被称为 id ,您可以使用 row_number() 将表中的行对齐 case 优先级表达式:

select case when a.x = 0 then b.x else a.x end x
from (select row_number() over(order by id) rn, x from tablea) a
left join (select row_number() over(order by id) rn, x from tableb) b 
    on a.rn = b.rn

相关问题