Sql 如何在不使用TOP和rowcount关键字的情况下查找sybase中的前N行?
我需要在不使用top和rowcount的情况下找出表的前1000行。我必须在查询中使用where子句。查询应如下所示: 从何处选择* 我没有任何好的列可以用在where子句中Sql 如何在不使用TOP和rowcount关键字的情况下查找sybase中的前N行?,sql,database,sybase,sybase-ase15,Sql,Database,Sybase,Sybase Ase15,我需要在不使用top和rowcount的情况下找出表的前1000行。我必须在查询中使用where子句。查询应如下所示: 从何处选择* 我没有任何好的列可以用在where子句中 此外,我无法添加新列。使用具有order by中文字值的row_number可能是您正在寻找的解决方案 with n as ( SELECT neo.* , ROW_NUMBER() OVER (ORDER BY (SELECT 100)) as [rn] FROM &l
此外,我无法添加新列。使用具有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
为什么会有限制?order by和limit 1000呢?我的应用程序的可能副本是以一种将条件作为输入的方式编写的。默认情况下,将添加其中。所以也不能使用limit。@Gangaraju我不认为limit是sybaseCant对select子句的一部分。我唯一能输入的是应用程序在运行后添加的条件where@Neo您能否共享表的列名以及一些示例数据?顺便说一句,似乎很奇怪,你不能只输入WHERE之后的条件。。。为什么呢?