ms sqlserver中的oreder by 问题
select * from(select row_number() over(order by itemId) as rowNum,* from item)as items
where rowNum between @begin and @end order by @pageOrder
select * from(select row_number() over(order by itemId) as rowNum,* from item)as items
where rowNum between 3 and 4 order by price desc
上面那种最后的order by 是个传过来的
报错:
由 ORDER BY 编号 1 标识的 SELECT 项包含一个变量,作为标识列位置的表达式的一部分。按照引用列名的表达式排序时,只允许使用变量。
下面是直接用列名,能查询出来, 请问谁能帮我看 第一个中怎么改啊
[解决办法]
CREATE TABLE [学生表]( 学号 NVARCHAR(5) NOT NULL PRIMARY KEY, 姓名 NVARCHAR(8), 成绩 FLOAT )INSERT INTO [学生表]SELECT '003', '张三', 88 UNION ALL SELECT '004', '李四', 99 UNION ALL SELECT '005', '王五', 59 UNION ALL SELECT '006', '赵六', 49DECLARE @var VARCHAR(10)SET @var='成绩'EXEC('SELECT * FROM [学生表] ORDER BY '+@var)