sqlserver 返回sql时总是增加ROW_NUMBER列

浏览:2057 发布日期:2016/04/13
5.0.0 - 严重 - 未处理
使用buildSql和select返回sql语句是,总是自动增加ROW_NUMBER() OVER ( ORDER BY rand()) AS ROW_NUMBER列,显得有些多余。使用多级子查询时反而会导致ROW_NUMBER列引起的错误。
如果mssql能使group by实现mysql读取数据的方式,确实很不错

例如想要生成SQL语句
(select f1,f2,f3 form MyTable where datediff(day,modify_date,getdate())<=7)
但是生成的SQL内容如下:
( SELECT T1.* FROM (SELECT thinkphp.*, ROW_NUMBER() OVER ( ORDER BY rand()) AS ROW_NUMBER FROM (select f1,f2,f3 form MyTable where datediff(day,modify_date,getdate())<=7) AS thinkphp) AS T1 )

建议在limit时才生成ROW_NUMBER。这样可以更方便的使用临时表处理复杂的查询
评论(
后面还有条评论,点击查看>>