一个关于排序的奇怪问题【已解决】
问题是这样产生的,在知道一个表名的时候,我想分别把表中的字段显示出来以NorthWind中的Employees表为例
于是写了如下代码
程序代码:
select top 1 name from ( select top 4 * from syscolumns where id=( select id from sysobjects where xtype='U' and name='Employees') order by name asc )t order by name desc
此查询的结果是将employees表中的字段作为字符串进行排序,并查出排在第四位的字段的名称
可是对倒数第二行后边的关键字t很是疑惑,不知道该字到底起什么作用?
奇怪的是t字去掉之后就会报错
消息 156,级别 15,状态 1,第 5 行
关键字 'order' 附近有语法错误。
关键字 'order' 附近有语法错误。
本来我以为这个是关键字,后来经过反复试验,发现只要在这里随便写上一个字母就可以成功执行,这个字母到底起到什么作用?这可是随手乱写的……
但是不写这个字母它就报错,真是晕了
PS:我用的是SQL Server 2005
[[it] 本帖最后由 天堂落日 于 2008-1-28 17:51 编辑 [/it]]