您的位置:首页 > 数据库

SQL SERVER中的WITH T AS () SELECT * FROM T 的用法

2014-02-28 10:15 489 查看
做一个简单的示例,SQL语句如下(使用的为SQLSERVER数据库):

Select * from (SELECT ROW_NUMBER()OVER(ORDER BY UpdateTime DESC) as row_number,

l.DataLoc,l.Code,l.Remark,l.CreateTime,us.ContactsAS Con

          from House_Location l

                               LEFT JOIN 

                                Tab_Cnus ON us.Id = l.UpdateUser

          where 1=1   AND l.DataFrom ='广州') t where row_number BETWEEN 1 and 10

 

对于这句简单的SQL语句解读:

 

  从别名表t中查询出符合条件的10条记录(即是一种分页控件的用法,只抽取分页后的10条记录)。

 

则另一种SQL语句的写法(此语句达到了同上语句的效果,只不过使用了WITH T AS ()SELECT * FROM T 的用法):

 

with t as (SELECT ROW_NUMBER() OVER(ORDER BY UpdateTimeDESC) as row_number,
l.DataLoc,l.Code,l.Remark,l.CreateTime,us.ContactsAS Con
from House_Location l
LEFT JOIN

Tab_Cn us ON us.Id = l.UpdateUser

where 1=1 AND l.DataFrom = '广州')
Select * from t where row_numberBETWEEN 1 and 10

 

以上为对WITH T AS () SELECT *FROM T 的简单使用心得,希望对大家有所帮助。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息