首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Where子句中的SQL Row_Number()函数

Where子句中的SQL Row_Number()函数
EN

Stack Overflow用户
提问于 2009-09-23 16:00:32
回答 10查看 287.7K关注 0票数 102

我在where子句中发现了一个用Row_Number()函数回答的问题。当我尝试一个查询时,我得到了以下错误:

“消息4108,级别15,状态1,行1窗口函数只能出现在SELECT或ORDER BY子句中。”

下面是我尝试过的查询。如果有人知道如何解决这个问题,请让我知道。

代码语言:javascript
复制
SELECT employee_id 
FROM V_EMPLOYEE 
WHERE row_number() OVER ( ORDER BY employee_id ) > 0 
ORDER BY Employee_ID
EN

回答 10

Stack Overflow用户

发布于 2009-09-23 16:04:24

要解决此问题,请将select语句包装在CTE中,然后可以对CTE进行查询,并在where子句中使用窗口函数的结果。

代码语言:javascript
复制
WITH MyCte AS 
(
    select   employee_id,
             RowNum = row_number() OVER ( order by employee_id )
    from     V_EMPLOYEE 
    ORDER BY Employee_ID
)
SELECT  employee_id
FROM    MyCte
WHERE   RowNum > 0
票数 103
EN

Stack Overflow用户

发布于 2009-09-23 16:04:09

代码语言:javascript
复制
SELECT  employee_id
FROM    (
        SELECT  employee_id, ROW_NUMBER() OVER (ORDER BY employee_id) AS rn
        FROM    V_EMPLOYEE
        ) q
WHERE   rn > 0
ORDER BY
        Employee_ID

请注意,此筛选器是冗余的:ROW_NUMBER()1开始,并且始终大于0

票数 66
EN

Stack Overflow用户

发布于 2012-03-19 13:54:47

代码语言:javascript
复制
Select * from 
(
    Select ROW_NUMBER() OVER ( order by Id) as 'Row_Number', * 
    from tbl_Contact_Us
) as tbl
Where tbl.Row_Number = 5
票数 34
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1466963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档