首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用两列的sql server -数字结果

使用两列的sql server -数字结果
EN

Stack Overflow用户
提问于 2015-01-28 10:24:09
回答 2查看 61关注 0票数 0

我试图根据两列对行进行编号--我不太清楚我想要做什么,所以在本例中,我希望下面的表将画出上千个单词。

下表如下:

代码语言:javascript
复制
Name   | Car Colour
-------------------
 Alice | Red
 Alice | Green
 Alice | Blue
 Bill  | Orange
 Bill  | Purple
 Carol | Brown
 Carol | Orange
 Carol | Magenta
 Carol | Indigo
 Carol | Lilac
 Carol | White

如何显示下列内容:

代码语言:javascript
复制
Name   | Car Colour  |   Indiv. Car Index
------------------------------------------- 
 Alice | Red         |    1
 Alice | Green       |    2
 Alice | Blue        |    3
 Bill  | Orange      |    1  
 Bill  | Purple      |    2
 Carol | Brown       |    1
 Carol | Orange      |    2 
 Carol | Magenta     |    3
 Carol | Indigo      |    4 
 Carol | Lilac       |    5
 Carol | White       |    6 

编辑--感谢您的快速响应--它们在Server 2008中工作,但是我可以问一下Server 2000的替代方案是什么吗?-它似乎不认识ROW_NUMBER()。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-28 10:33:50

由于您需要在默认情况下为每个Name订购订单,所以在ORDER BY子句中使用SELECT 0

代码语言:javascript
复制
SELECT Name, [Car Colour],
ROW_NUMBER() OVER (PARTITION BY Name ORDER BY (SELECT 0)) [Indiv. Car Index]
FROM YOURTABLE
  • 单击此处查看结果

SQL SERVER 2000

代码语言:javascript
复制
SELECT * FROM
(
    SELECT (SELECT count(*) from #TEMP as e2
              WHERE e2.Name = e1.Name AND e2.[CAR COLOUR] <= e1.[CAR COLOUR]) as RNO, e1.Name,e1.[CAR COLOUR]
    FROM #TEMP as e1
)TAB
ORDER BY NAME,RNO
票数 1
EN

Stack Overflow用户

发布于 2015-01-28 10:29:24

若要在SELECT查询中包括索引号,请使用ROW_NUMBER()

代码语言:javascript
复制
SELECT Name, [Car Color], 
       ROW_NUMBER() OVER (PARTITION BY Name ORDER BY [Car Color] DESC) as [Indiv. Car Index]
FROM TableName
ORDER BY Name

阅读更多关于ROW_NUMBER() 这里的信息。

结果为SQL Fiddle

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28189782

复制
相关文章

相似问题

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