表中有n条记录ABC
。 编写一个查询来选择表中的每个第5条记录。查找表中的每第5条记录
例如,表中有30行。 因此查询应该从表中输出第5,10,15,20,25和30条记录。
我试图ROW_NUMBER OVER (ORDER BY id)
但得到MSG: -
从SQL服务器IML消息(MSG 156,15级,状态2):
语法错误关键字邻近 'OVER'。
我正在使用Sybase数据库。
表中有n条记录ABC
。 编写一个查询来选择表中的每个第5条记录。查找表中的每第5条记录
例如,表中有30行。 因此查询应该从表中输出第5,10,15,20,25和30条记录。
我试图ROW_NUMBER OVER (ORDER BY id)
但得到MSG: -
从SQL服务器IML消息(MSG 156,15级,状态2):
语法错误关键字邻近 'OVER'。
我正在使用Sybase数据库。
这不是SQL的工作原理。我不确定哪一列会给你想要的,但你不应该知道或关心数据如何存储或者排序可能是什么。
你需要找出一个WHERE子句,给你你想要的。取决于顺序的东西是错误的。
如果sypace dan计算一个行号(这是大多数SQL可以),您可以使用它来筛选(%5)查询。stnadard例如寻呼等。看到回答由valex。 – TomTom
试试这个
select rn, col_list from (select rownum rn, col_list from tab_name)
where rn=N;
,其中N是你想要的行数。
试试这种方法。
创建具有标识列的临时表。
select
id = identity(8),
column1,....
into #ABC
from ABC
选择与模:
select * from #ABC
where id % 5 = 0
如何判断哪一行是第5次? – SWeko
'ROW_NUMBER()OVER'在SYBASE上不起作用! – Parado
@Parado:我怎样才能解决问题:( – avinashse