上述两个答案都不起作用,除非您的所有名字按排序顺序排在第一位。
Select FirstName, LastName
from (
select Sorter = 1, FirstName, LastName from People
union all
select 0, 'FirstName', 'LastName') X
order by Sorter, FirstName -- or whatever ordering you need
如果你想这样做,所有非VARCHAR列为好,缺点是(至少):
- 中的所有数据将成为VARCHAR。例如,如果您使用Visual Studio,则不会识别或使用日期值。或者int值。或者任何其他的事情。
- 您需要明确提供日期时间值(如DOB)的格式。格式为dd-mm-yyyy的Varchar中的DOB值(如果这是您选择将其转换为的值)将无法正确排序。
的SQL来实现这一点,但是不推荐,是
Select FirstName, LastName, Age, DOB
from (
select Sorter = 1,
Convert(Varchar(max), FirstName) as FirstName,
Convert(Varchar(max), LastName) as LastName,
Convert(Varchar(max), Age) as Age,
Convert(Varchar(max), DOB, 126) as DOB
from People
union all
select 0, 'FirstName', 'LastName', 'Age', 'DOB') X
order by Sorter, FirstName -- or whatever ordering you need
如果你想为包括NON-VARCHAR列的每一列添加一个头,那么这种方法会遇到很多问题(如果你坚持数据库层的话) – RichardTheKiwi 2011-02-11 00:10:47