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

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

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

  1. SELECT
  2. fa.name, fa.email_address,
  3. CASE
  4. WHEN pl.main_ID IS NULL THEN pl.sub_ID
  5. ELSE pl.main_ID
  6. END as pid ,pl.*
  7. FROM TableA pl
  8. INNER JOIN TableB fa ON fa.parent_account_sid = pl.pid
d6kp6zgx

d6kp6zgx1#

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

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

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

相关问题