如何在不使用TOP和rowcount关键字的情况下在sybase中找到TOP N行?

时间:2016-05-16 18:16:29

标签: sql database sybase sybase-ase15

我需要在不使用top和rowcount的情况下查找表的前1000行。我必须在查询中使用where子句。查询应如下所示:

select * from <table_name> where <condition>

我没有任何可以在where子句中使用的好列。

此外,我无法添加新列。

1 个答案:

答案 0 :(得分:0)

在order by中使用带有文字值的row_number可能是您正在寻找的解决方案。

with n as (
    SELECT 
        neo.* 
        , ROW_NUMBER() OVER (ORDER BY (SELECT 100)) as [rn]
    FROM <table_name> neo
) 
SELECT 
    n.*
FROM n 
WHERE n.[rn] <= 1000 -- first 1000 rows