日期:2014-05-17  浏览次数:20495 次

查询分析器,把表按一字段分组,是同一组的打上标记
一个表字段有    工号,姓名,标记
内容如下
工号     姓名    标记
3242 张
3242 の
12 到
12 王
14 地方
12 发
3242 发
我想把工号一样的打上标记,就是按照工号分组,把是每一组一样打上标记
3242 张 1
3242 の 1
12 到 2
12 王 2
14 地方 3
12 发 2
3242 发 1
请问这个语句怎么写。谢谢

 

------解决方案--------------------
select 工号,姓名,标记=ROW_NUMBER() over(partition by 工号 order by 标记) from 表名
------解决方案--------------------

create table nmw
(工号 int, 
 姓名 varchar(10),
 标记 varchar(5)
)

insert into nmw(工号,姓名)
select 3242, '张' union all
select 3242, 'の' union all
select 12, '到' union all
select 12, '王' union all
select 14, '地方' union all
select 12, '发' union all
select 3242, '发'


update a
 set a.标记=rtrim(b.rn)
 from nmw a
 inner join
 (select 工号,姓名,dense_rank() over(order by 工号 desc) 'rn' from nmw) b
 on a.工号=b.工号

select * from nmw

/*
工号          姓名         标记
----------- ---------- -----
3242        张          1
3242        の          1
12          到          3
12          王          3
14          地方         2
12          发          3
3242        发          1

(7 row(s) affected)
*/

------解决方案--------------------
引用:
引用:
select 工号,姓名,标记=ROW_NUMBER() over(partition by 工号 order by 标记) from 表名

试了,你这个不行啊。

我这个只是展示,没更改...用3楼的吧