oracle数据库,表名字为test,字段只有一个name,sql查询时添加一个id,如何得到下图的效果,谢谢啦

 我来答
badkano
2016-06-30 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885372
团长

向TA提问 私信TA
展开全部

创建表插入数据:

create table test
(name varchar2(10),
id int);

insert into test (name) values ('张三');
insert into test (name) values ('张三');
insert into test (name) values ('张三');
insert into test (name) values ('李四');
insert into test (name) values ('李四');
insert into test (name) values ('王二');
insert into test (name) values ('王二');
commit;

执行update语句:

update test set test.id=(select s.rn from
(select name,row_number() over (order by rn) rn
from
(select name,rownum rn from test order by rownum) t
where rn in (select min(rn) from (select name,rownum rn from test order by rownum) t group by name)) s
where test.name=s.name);

执行后结果:

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式