SQL:返回多个列的子查询的分组别名

我有一个包含子查询的sql查询,我希望从中返回两列。 目前看起来像这样:

SELECT A,B,CASE
         WHEN B IS NULL THEN NULL
         ELSE (
           SELECT first_column
           FROM   TABLE
           WHERE  TABLE.id = A.id
         )
       END AS TABLE_first_column,CASE
         WHEN B IS NULL THEN NULL
         ELSE (
           SELECT second_column
           FROM   TABLE
           WHERE  TABLE.id = A.id
         )
       END AS TABLE_second_column
FROM   OTHER_TABLE
...

子查询上方是相同的,除了它们不返回同一列。 我想知道是否有可能只有一个子查询返回2列,并为每个相应的列都有一个别名,就像这样:

SELECT A,CASE
         WHEN B IS NULL THEN NULL
         ELSE (
           SELECT first_column,second_column
           FROM   TABLE
           WHERE  TABLE.id = A.id
         )
       END AS (TABLE_first_column,TABLE_second_column)
FROM   OTHER_TABLE
...

是否可以通过某种方式做到这一点?

ahu3129 回答:SQL:返回多个列的子查询的分组别名

如果您的TABLEOTHER_TABLE表通过id关联,则可以执行以下操作:

SELECT 
  A,B,CASE
    WHEN B IS NULL THEN NULL
    ELSE t1.first_column
  END AS TABLE_first_column,CASE
    WHEN B IS NULL THEN NULL
    ELSE t1.second_column
  END AS TABLE_second_column
FROM OTHER_TABLE t
LEFT JOIN "TABLE" t1 ON t.id = t1.id
本文链接:https://www.f2er.com/3051868.html

大家都在问