【问题标题】:how to set row number in sybase query如何在sybase查询中设置行号
【发布时间】:2013-05-12 14:06:40
【问题描述】:

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

前:

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 中是否有任何东西

【问题讨论】:

    标签: sybase sap-ase


    【解决方案1】:

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

    请考虑以下示例。

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

    【讨论】:

    • 你认为我对未来开发者的回答如何?
    • @Moudiz 更复杂的表结构会更难。
    • 您建议删除它还是保留它并提供更多解释?
    • @Moudiz 在我看来它应该被删除。您的回答并不能解决 OP 的问题。
    【解决方案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
    

    【讨论】:

    • 但是如果您不想按 ROW_NUMBER() 订购怎么办?
    猜你喜欢
    • 2011-12-28
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 2017-07-26
    • 1970-01-01
    • 2014-08-25
    • 2011-12-11
    相关资源
    最近更新 更多