首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

使用sql server System.Data.SqlClient.SqlCommand,为何Order By不起任何作用解决方案

2012-03-17 
使用sql server System.Data.SqlClient.SqlCommand,为何Order By不起任何作用在网上查的写法SELECT * FROM

使用sql server System.Data.SqlClient.SqlCommand,为何Order By不起任何作用
在网上查的写法

SELECT * FROM ( SELECT TOP (100) PERCENT * FROM myTable ORDER BY myTable.uid DESC) as newtable

能够返回结果,但是ORDER BY是不起任何作用的,无论是 ASC 还是 DECS,

而且如果直接写SELECT * FROM myTable ORDER BY myTable.uid DESC 赋值给System.Data.SqlClient.SqlCommand.CommandText,
会报错SQLException: Column 'xxx' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

烦死了,急求解答

[解决办法]
SELECT * FROM ( SELECT TOP (100) percent * FROM myTable ORDER BY myTable.uid DESC) as newtable order by myTable.uid DESC
[解决办法]
newTable.uid有这个字段不
[解决办法]
在sql server的查询编辑器里好像没错哦。
[解决办法]
因为你用了TOP (100) PERCENT,这是返回所有数据,外查询还是根据你的主键或者默认数据来显示的
可以把order by放在外面,或者外面再用一次order by 或者改Top n (n<100)


SELECT * FROM ( SELECT TOP (100) percent * FROM myTable ORDER BY myTable.uid DESC) as newtable order by myTable.uid DESC
这个错误的原因是外查询表名并不是myTable了,当然不存在myTable.uid

热点排行