如何对查询结果的子集进行排序并将其放在结果的顶部?

3

我有一个示例查询:

select name from tableA;

以下是给出的内容:
a
b
c
d1
d2 
d3
e1
e3

我希望将“d”字排在列表的顶部。
例如:
d1
d2
d3
a
b
c
e1
e2
e3

我尝试将两个查询进行联合,但好像没有起作用。我相信我漏了什么,但无法找出原因。

我做到了这一步:

select name from tableA where name like 'd%';
union
select name from tableA;

2
给完美答案的补充:联合查询不保证任何顺序。如果需要的话,可以添加“order by”。 - Serif Emek
1个回答

4
你可以尝试在ORDER BY子句中使用CASE语句:

SQL Fiddle

SELECT name
FROM TableA
ORDER BY
    CASE WHEN name LIKE 'd%' THEN 0 ELSE 1 END,
    name

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接