2

所以这个查询是针对数据库的组合框的,我试图对出现在里面的项目列表进行排序,但是它不起作用。这是查询

Select "*",  "<<All Records>>" 
FROM Treatment 
UNION 
Select Treatment.TreatmentID, Treatment.Treatment 
From Treatment;

我尝试为查询的两个部分添加 Order By,并尝试切换它,仍然无法正常工作,有什么想法吗?我试过了ORDER BY Treatment.TreatmentID,因为那是那个表的主键

顺便说一句,当不涉及联合时,ORDER BY 本身就在第二部分起作用。目前,数据排序如下:

<<All Records>>
1 Treatment Name
8 Treatment Name
9 Treatment Namw
10 Treatment Name
11 Treatment Name 
12 Treatment Name
2 Treatment Name
Etc...

数字是 ID,治疗名称(显然并非都称为治疗名称)来自治疗名称字段。我需要顶部的“所有记录”,然后按 ID 对联合的第二部分中的数据进行排序。

提前致谢,

亚当

4

3 回答 3

6

您可以做的一件事是添加一个可用于对数据进行排序的字段:

Select "*" as AllRec,  "<<All Records>>" as Allrecords, 1 as SortOrder
FROM Treatment 
UNION 
Select Treatment.TreatmentID, Treatment.Treatment, 2 as SortOrder
From Treatment
ORDER BY SortOrder, AllRec;

总是最后应用,ORDER BY所以它不会知道Treatment.TreatmentID列名。

于 2013-01-29T17:04:24.473 回答
1

你可以这样做:

Select q.* from 
(Select "*", "<>" 
FROM Treatment UNION 
Select Treatment.TreatmentID, Treatment.Treatment 
From Treatment) q
ORDER BY q.whatever
于 2013-01-29T17:03:49.607 回答
0

SELECT, "--- 所有记录 ---", SortOrder = 0

联盟

SELECT TreatmentID, Treatment, SortOrder = 1 FROM Treatment

ORDER BY SortOrder,处理;


(只晚了两年半!)

于 2015-06-02T22:24:12.107 回答