select*from( select OrderId, Freight, RANK() OVER(orderby Freight) as rank from Orders ) a where rank between20and30
4.try ... catch
SET XACT_ABORT ON-- 打开 try功能 BEGIN TRY begintran insertinto Orders(CustomerId) values(-1) committran print'commited' END TRY BEGIN CATCH rollback print'rolled back' END CATCH
5.通用表达式CTE 通过表达式可免除你过去创建临时表的麻烦。特别,通过表达式还支持递归。
--例子:结合通用表达式进行分页 WITH OrderFreight AS( select OrderId, Freight, ROW_NUMBER() OVER(orderby Freight) as row from Orders ) select OrderId, Freight from OrderFreight where row between10and20