ms sql row_number()函数 - 不会让我在同一个语句中使用

lmp*_*ce1 4 php sql sql-server where

我有以下sql语句:

$sql = "select siteid, row_number() OVER (ORDER BY siteid) as rownum FROM nwsite WHERE rownum >= 4";
Run Code Online (Sandbox Code Playgroud)

当我在查询之外使用名称时(例如在foreach循环中),"rownum"工作,但是当它用作WHERE子句时,它永远不会起作用.

有任何想法吗?

谢谢

Lie*_*ers 5

一种选择是

  • 将select语句包装到子选择中
  • rownum在外部查询中使用别名

SQL语句

select *
from   (
         select siteid
                , row_number() OVER (ORDER BY siteid) as rownum 
         FROM   nwsite 
       ) q
where  rownum >= 4
Run Code Online (Sandbox Code Playgroud)