以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  Row_Number函数能否用两列作为排序列  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=74339)

--  作者:happyft
--  发布时间:2015/9/8 21:56:00
--  Row_Number函数能否用两列作为排序列
如题,想用SQL 的Row Number函数分页加载数据ROW_NUMBER() over(order by 后面想用一个逻辑列“是否完成" 和"制单日期"两列来作为分页依据列,要怎么实现,网上查找都只有一列的用法。

谢谢!

--  作者:大红袍
--  发布时间:2015/9/8 22:04:00
--  

如下语句

 

select top 18 * f rom {订单} where Convert(varchar, 制单日期) + convert(varchar, 是否完成) not in (select top 18*1 Convert(varchar, 制单日期) + convert(varchar, 是否完成)  f rom {订单} order by Convert(varchar, 制单日期) + convert(varchar, 是否完成) ) order by Convert(varchar, 制单日期) + convert(varchar, 是否完成)


--  作者:jspta
--  发布时间:2015/9/9 8:43:00
--  
以下是引用happyft在2015/9/8 21:56:00的发言:
如题,想用SQL 的Row Number函数分页加载数据ROW_NUMBER() over(order by 后面想用一个逻辑列“是否完成" 和"制单日期"两列来作为分页依据列,要怎么实现,网上查找都只有一列的用法。

谢谢!

s elect * ,row_Number() over(order by 是否完成,制单日期,_Identify) from 表A


--  作者:Hyphen
--  发布时间:2015/9/9 8:53:00
--  

sql server 2008可以,其它没试过

 

USE AdventureWorks2008;
GO

WITH OrderedOrders AS
(
    SEL ECT *,
    ROW_NUMBER() OVER (ORDER BY OrderDate desc,SalesOrderNumber desc) AS \'RowNumber\'
    FROM Sales.SalesOrderHeader
)
SEL ECT *
FROM OrderedOrders
WHERE RowNumber BETWEEN 30 AND 60;