0

我有一张桌子

 ---------
|   NAME  |
|---------|
|  arun   |
|  balu   |
|  sunny  |
|  binu   |
|  binoy  |
|  cinny  |
|  aiju   |
|  dolly  |
 ---------   

我写了一个查询来获取mysql中的排序列表

SELECT name FROM students ORDER BY name ASC

我把所有的名字都排序了,但我不知道如何得到如下所示的输出

 ---------
|   NAME  |
|---------|
|    A    |
|  aiju   |
|  arun   |
|    B    |
|  balu   |
|  binoy  |
|  binu   |
|    C    |
|  cinny  |
|    D    |
|  dolly  |
|    S    |
|  sunny  |
 ---------  

谁能告诉我如何获得这个输出?

4

1 回答 1

2

如果您想在 SQL 中执行此操作,则可以使用UNION ALL查询。第一个查询将返回 the name,第二个查询将返回每个名称的第一个字母。然后你可以ORDER BY得到结果:

select name
from yourtable
union all
select distinct upper(left(name, 1))
from yourtable
order by name

请参阅带有演示的 SQL Fiddle

结果是:

|  NAME |
---------
|     A |
|  aiju |
|  arun |
|     B |
|  balu |
| binoy |
|  binu |
|     C |
| cinny |
|     D |
| dolly |
|     S |
| sunny |
于 2013-02-04T18:45:01.310 回答