当前位置:  开发笔记 > 编程语言 > 正文

SQL - 对表中的列数据进行排序

如何解决《SQL-对表中的列数据进行排序》经验,为你挑选了1个好方法。

我有一个包含3个字段的表:

CUST_ORDER  FULFILL_NO  ITEM  LOCATION
   SA23        1        0233    11001
   SA23        1        0243    13001
   SA23        1        0513    14001
   SA88        1        0873    15001
   SA88        1        0533    17001

我想对fulfill_no字段进行排序,以便数据变为:

CUST_ORDER  FULFILL_NO  ITEM  LOCATION
   SA23        1        0233    11001
   SA23        2        0243    13001
   SA23        3        0513    14001
   SA88        1        0873    15001
   SA88        2        0533    17001

怎么做 ?



1> Gordon Linof..:

你可以使用row_number():

select cust_order,
       row_number() over (partition by cust_order order by location) as fulfill_no,
       item, location
from t;

实际上,在Oracle中更新数据可能会非常棘手.这是一种方式:

update t
    set fulfill_no = (select count(*)
                      from t t2
                      where t2.cust_order = t.cust_order and t2.location <= t.location
                     );

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有