除非您的所有名字都按排序顺序在“ first”之后,否则上述两个答案都不会起作用。
Select FirstName, LastNamefrom ( select Sorter = 1, FirstName, LastName from People union all select 0, 'FirstName', 'LastName') Xorder by Sorter, FirstName -- or whatever ordering you need
如果您也想对所有非varchar列执行此操作,则CONS(至少)为:
- 您所有的数据都将成为VARCHAR。例如,如果您使用Visual Studio,则您将无法再识别或使用日期值。或int值。或其他任何事情。
- 您需要为日期时间值(如DOB)显式提供一种格式。Varchar中DOD值的格式为dd-mm-yyyy(如果您选择将其转换为它们)将无法正确排序。
实现此目的的SQL(但 不推荐 )是
Select FirstName, LastName, Age, DOBfrom ( 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') Xorder by Sorter, FirstName -- or whatever ordering you need



