我有一个包含子查询的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,
B,
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
...
是否可以通过某种方式做到这一点?
答案 0 :(得分:0)
如果您的TABLE
和OTHER_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