CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

请教一个select语句的写法。

楼主myperry(綠草原 向★★★★★★奋斗)2006-07-03 16:51:05 在 MS-SQL Server / 基础类 提问

 
  表TB的内容如下:  
   
  aaa,     bbb  
  1 a  
  2 b  
  3 m  
  4 b  
  5 c  
  6 m  
  7 v  
  8 m  
  9 n  
   
  希望的返回结果如下:  
  aaa,     bbb, ccc  
  1 a 1  
  2 b 1  
  3 m 1  
  4 b 2  
  5 c 1  
  6 m 2  
  7 v 1  
  8 m 3  
  9 n 1  
   
  规则:按字段aaa排序,bbb字段第一次出现时,ccc=1,   第二次出现时,   ccc=2...以此类推。  
  问题点数:20、回复次数:7Top

1 楼LouisXIV(夜游神)回复于 2006-07-03 16:55:07 得分 20

declare   @t   table  
  (  
  aaa   int,  
  bbb   char(1)  
  )  
  insert   into   @t  
  select   1,'a'   union   all  
  select   2,'b'   union   all  
  select   3,'m'   union   all  
  select   4,'b'   union   all  
  select   5,'c'   union   all  
  select   6,'m'   union   all  
  select   7,'v'   union   all  
  select   8,'m'   union   all  
  select   9,'n'  
   
  select   *,(select   count(1)   from   @t   where   aaa<=a.aaa   and   bbb=a.bbb)   ccc  
  from   @t   a  
   
  /*  
  aaa                   bbb     ccc                    
  -----------   ----   -----------    
  1                       a         1  
  2                       b         1  
  3                       m         1  
  4                       b         2  
  5                       c         1  
  6                       m         2  
  7                       v         1  
  8                       m         3  
  9                       n         1  
  */Top

2 楼paoluo(一天到晚游泳的鱼)回复于 2006-07-03 16:55:23 得分 0

Select    
  a,  
  b,  
  (Select   Count(*)   From   TB   Where     bbb=A.   bbb   And   aaa<=A.   aaa)   As   ccc  
  From   TB   ATop

3 楼paoluo(一天到晚游泳的鱼)回复于 2006-07-03 16:55:57 得分 0

。。。Top

4 楼fcuandy(了此残生.)回复于 2006-07-03 16:56:48 得分 0

declare   @tb   table   (aaa   char(10),bbb   char(10))  
  insert   @tb    
   
  select   1,'a'  
  union   select   2,'b'  
  union   select   3,'m'  
  union   select   4,'b'  
  union   select   5,'c'  
  union   select   6,'m'  
  union   select   7,'v'  
  union   select   8,'m'  
  union   select   9,'n'  
  select   *   from   @tb  
   
  select   aaa,bbb,ccc=(select   count(1)   from   @tb   b   where   b.aaa<=a.aaa   and   b.bbb=a.bbb)   from   @tb   a  
   
  假设你的AAA字段是不重复的Top

5 楼fcuandy(了此残生.)回复于 2006-07-03 16:57:43 得分 0

我只不过比你们多打了   14   个字,另外表变量名多打了个字符,发上来就..Top

6 楼LouisXIV(夜游神)回复于 2006-07-03 16:57:53 得分 0

:)Top

7 楼fcuandy(了此残生.)回复于 2006-07-03 16:58:03 得分 0

我只不过比你们多打了   14   个字,另外表变量名多打了个字符,发上来就..Top

相关问题

关键词

得分解答快速导航

  • 帖主:myperry
  • LouisXIV

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo