首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加入RowNumber?

加入RowNumber?
EN

Stack Overflow用户
提问于 2012-04-30 11:18:04
回答 2查看 2.8K关注 0票数 0
代码语言:javascript
复制
    TableBoxes                          TableItems
 BoxCode    BoxDesc                   ItemNo    BoxCode       ItemDesc
    X1        Freight1                   123       X1            Tomatoes
    X4        Freight2                   124       X1            Apples  
    X8        Freight3                   128       X4            Potatoes   

我只想要BoxCode=X1的结果行,输出由ItemNo命令

代码语言:javascript
复制
BoxNumber         ItemNo               ItemDesc
   1                1                     Tomatoes
   1                2                     Apples

我可以通过在ItemNo上使用row_number()轻松地使'ItemNo‘系列工作。我怎样才能找到第一张桌子上盒子的系列呢?我当前的查询

代码语言:javascript
复制
select 
    row_number() over(
          order by a.ItemNo
    )as ItemNo
    ,ItemDesc
from 
    TableItems a 
    inner join TableBoxes b 
        on a.BoxCode=b.BoxCode 
where
    a.BoxCode='X1'

不知道如何为BoxCode选择串行,达米恩。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-30 11:28:19

这是你想要的吗?

代码语言:javascript
复制
WITH TableBoxesRanked AS (
  SELECT
    *,
    BoxNumber = ROW_NUMBER() OVER (ORDER BY BoxCode)
  FROM TableBoxes
)
SELECT
  b.BoxNumber,
  ItemNumber = ROW_NUMBER() OVER (ORDER BY i.ItemNo),
  i.ItemDesc
FROM TableItems i
  INNER JOIN TableBoxesRanked b ON i.BoxCode = b.BoxCode
WHERE a.BoxCode = 'X1'
票数 2
EN

Stack Overflow用户

发布于 2012-04-30 11:33:50

使用dense_rank()如下所示:

代码语言:javascript
复制
SELECT DENSE_RANK() OVER(order by a.BoxCode) , row_number() over(order by a.ItemNo)as ItemNo, ItemDesc 
from #TableItems a 
inner join #TableBoxes b on a.BoxCode=b.BoxCode where a.BoxCode in ('X1','X4')
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10382805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档