我正在尝试完成查询,但最后遇到了 ORDER BY
问题。这是一个例子:
SELECT
fieldA, fieldB
FROM
tableA
WHERE [conditionA]
UNION ALL
SELECT
fieldA, fieldB
FROM tableA
WHERE [conditionB]
ORDER BY fieldA, fieldC
fieldC
不包含在 SELECT
中,但存在于我使用的表中。通常,在标准 SELECT
中,这可以轻松完成。
答案 0 :(得分:4)
ORDER BY
在概念上在之后是 UNION ALL
。它只能引用 SELECT
ed 的列。因此,使用子查询执行此操作:
SELECT fieldA, fieldB
FROM ((SELECT fieldA, fieldB, fieldC
FROM tableA
WHERE [conditionA]
) UNION ALL
(SELECT fieldA, fieldB, fieldC
FROM tableA
WHERE [conditionB]
)
) a
ORDER BY fieldA, fieldC;
鉴于逻辑是针对同一个表的,这很可能也能满足您的需求:
SELECT fieldA, fieldB
FROM tableA
WHERE [conditionA] OR
[conditionB]
ORDER BY fieldA, fieldC;