sql—使用案例结果中的select值连接两个表

rqcrx0a6  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(360)

我有一个表,如果另一个id为null,我必须在其中显示一个id的值。
然后,我需要使用该情况的结果与另一个具有相同id的表联接 pid .
我被困住了,搞不清楚这件事。有人能帮我纠正一下吗?
我的问题如下:

SELECT 
  fa.name, fa.email_address,
  CASE 
  WHEN pl.main_ID IS NULL THEN pl.sub_ID
  ELSE pl.main_ID
  END as pid ,pl.*
  FROM TableA pl 
INNER JOIN TableB fa ON fa.parent_account_sid = pl.pid
d6kp6zgx

d6kp6zgx1#

使用横向连接(即。 apply ):

SELECT fa.name, fa.email_address, v.pid, pl.*
FROM TableA pl CROSS APPLY
     (VALUES (COALESCE(pl.main_ID, pl.sub_ID)) v(pid) JOIN
     TableB fa
     ON fa.parent_account_sid = v.pid;

当然,你可能会发现 COALESCE() 简单地说,只是重复它不是一个问题。

相关问题