NoN*_*aMe 2 sql-server union sql-order-by
我有一个与此类似的查询,
SELECT Col_a, Col_b, 0 AS Col_c FROM table1
WHERE confitions
UNION
SELECT Col_a, NULL AS Col_b, Col_c FROM table2
WHERE confitions
ORDER BY CASE WHEN Col_a='Other' THEN 1 ELSE 0 END ,
Col_a
Run Code Online (Sandbox Code Playgroud)
但是当我运行这个查询时,它给了我一个错误: ORDER BY items must appear in the select list if the statement contains a UNION, INTERSECT or EXCEPT operator. Severity 16
如果我删除该case声明它工作正常,任何人都可以帮我解决这个问题,提前谢谢.
使用内部查询:
SELECT * FROM (
SELECT Col_a, Col_b, 0 AS Col_c FROM table1
WHERE conditions
UNION
SELECT Col_a, NULL AS Col_b, Col_c FROM table2
WHERE conditions
) x
ORDER BY CASE WHEN Col_a='Other' THEN 1 ELSE 0 END, Col_a
Run Code Online (Sandbox Code Playgroud)