一个SQL语句引发的问题

select * from
(select ROW_NUMBER() OVER (order by user_info.ID) as a
from
user_info,news
where user_info.ID=news.ID) b
where a=2
-------------------------------------
咋看这个SQL语句没什么!但是我切引发出了一系列问题,真理只有一个:继续学吧

问题:
  1) 为什么用两个SQL语句?
----------------------------
答:函数运算一般是单查询里最后一个数据处理。

  2) ROW_NUMBER()分页利器。
---------------------------------------------
把不规则系列转换成规则系列。从而达到获得指定行。
条件:该列不是NTEXT,TEXT,IMAGE等类型,一般是ID,若要保留该ID,只需要再查询返回字段中加上ID,EP:select * from user_info.ID,(select ROW_NUMBER() OVER (order by user_info.ID) as a
  3) 这种连接方式效率高吗?与子查询怎么样?(这里没有考虑合并情况)
----------------------------------------------
例如:
select ID
from
user_info where ID IN (SELECT ID FROM NEWS)

你可能感兴趣的:(sql)