【发布时间】:2012-03-25 03:12:19
【问题描述】:
我有如下sql语句:
$sql = "select siteid, row_number() OVER (ORDER BY siteid) as rownum FROM nwsite WHERE rownum >= 4";
“rownum”在我在查询之外使用名称时(例如在 foreach 循环中)有效,但是当将其用作 WHERE 子句时,它永远不会有效。
有什么想法吗?
谢谢
【问题讨论】:
-
我的理解是解析函数是一个后处理步骤:一旦确定了结果集,就可以将结果集提供给解析函数来确定诸如行号、之前的行、什么行如下,等等。所以分析不能在 WHERE 子句中,因为它直到 where 子句被计算之后才被应用。因此,包裹在子查询中似乎是通常的方式。
标签: php sql sql-server where