上述兩個答案都不起作用,除非您的所有名字按排序順序排在第一位。
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