是否可以对第一个查询进行排序并保留返回的行作为第一行,而不对第二个查询进行排序。(如果有道理)
我当前查询的一个示例是:
SELECT * FROM Devices WHERE Live = 'true' AND Category = 'apple' ORDER BY ListOrder UNION SELECT * FROM Devices WHERE DeviceLive = 'true'
我希望“苹果”类别下的设备将按照该列表的顺序进行组织,并位于其他设备上方的列表顶部。但这似乎使两个查询混杂在一起。
您需要引入一个人工排序键。就像是:
SELECT *, 1 as SortKey FROM Devices WHERE Live = 'true' AND Category = 'apple' UNION SELECT *, 2 as SortKey FROM Devices WHERE DeviceLive = 'true' ORDER BY SortKey, ListOrder