4

我有一个 select statemnt ,它将返回结果说 1000 使用 join 与一些 3 到 4 个表。我的要求是在结果集中有标识列。谁可以帮我这个事。

前任 :

Result :
id   name 
--   ----
001   xxx
002   yyy
003   zzz

My requirment :
Rowid   id   name 
 1      --   ----
 2       001   xxx 
 3       002   yyy
 4       003   zzz

像 sql 中的 Row_number 一样,我们在 sybase 中是否有任何内容

4

2 回答 2

7

在sybase 中没有row_number或类似的东西。也许带有标识列的临时表会对您有所帮助?

请考虑下面的例子。

 select Rowid = identity(8), id, name      
 into #temtab
 from tab

 select Rowid, id, name
 from #temtab
于 2013-05-21T06:52:22.790 回答
2

在我使用的 Sybase IQ 版本中,存在版本 Number() 或 ROW_NUMBER() 函数。在我的版本中,您可以使用以下内容:

select Number() rowid, id, name      
 from tab

或者

select ROW_NUMBER() OVER (PARTITION BY name ORDER BY id) rowid, id, name      
 from tab

或者

select ROW_NUMBER() OVER (ORDER BY id) rowid, id, name      
 from tab
于 2016-12-22T08:24:09.127 回答