Mysql 行集合不能按特定列排序
我在MySQL MariaDB 10.20.1上有一个场景,其中结果行集不能按特定列排序 下面是这个查询的简化示例Mysql 行集合不能按特定列排序,mysql,sorting,union,mariadb,Mysql,Sorting,Union,Mariadb,我在MySQL MariaDB 10.20.1上有一个场景,其中结果行集不能按特定列排序 下面是这个查询的简化示例 SELECT * FROM ( SELECT * FROM Invoice WHERE /SOME_COMPLEX_CONDITION IS TRUE/ UNION ALL SELECT * FROM Invoice WHERE /ANOTHER_COMPLEX_CONDITION IS TRUE/ ) D12 ORDER BY D12
SELECT *
FROM (
SELECT *
FROM Invoice
WHERE /SOME_COMPLEX_CONDITION IS TRUE/
UNION ALL
SELECT *
FROM Invoice
WHERE /ANOTHER_COMPLEX_CONDITION IS TRUE/
) D12 ORDER BY D12.Amount ASC;
结果集按字典顺序排序,而不是按升序或降序排序。发票列的类型为十进制(X,Y),代码中没有类型转换
我想知道我应该从哪里开始这方面的研究 不需要进行外部查询,只需将每个查询用括号括起来[()],并在最后一个查询的括号外添加一个order by。我本来打算使用自连接,但你的建议做得更好,谢谢你的“MariaDB 10.20.1”--嗯?没有这样的版本。无法在10.0.21中复制,使用内部查询的十进制(10,2)字段对外部查询排序对我来说很好。。。