none
关于数据动态排序 RRS feed

  • 问题

  • 假如一个数据表,有2个字段:积分,排序。

    排序的是按积分的大小得到的顺序,也就是依赖于积分变动;

    如何能及时的更新 排序 字段中的数据?

    PS:

    比如这种场景:一个公司表,里面有积分,销售字段,想显示所有公司的同时要显示出此公司的积分所处的排序位置,销售所处的排序位置。


    • 已编辑 seeseason 2013年12月26日 9:02 补充说明
    2013年12月26日 8:55

答案

  • create table employee (empid int ,deptid int ,salary decimal(10,2))
    insert into employee values(1,10,5500.00)
    insert into employee values(2,10,4500.00)
    insert into employee values(3,20,1900.00)
    insert into employee values(4,20,4800.00)
    insert into employee values(5,40,6500.00)
    insert into employee values(6,40,14500.00)
    insert into employee values(7,40,44500.00)
    insert into employee values(8,50,6500.00)
    insert into employee values(9,50,7500.00)

    SELECT *, Row_Number() OVER (partition by deptid ORDER BY salary desc) rank FROM employee


    以上资料来自:http://www.cnblogs.com/fxgachiever/archive/2010/09/15/1826792.html

    希望可以帮到你。



    • 已编辑 彭123 2013年12月26日 14:00
    • 已标记为答案 seeseason 2013年12月27日 1:29
    2013年12月26日 13:57

全部回复

  • 楼主能给一点详细的数据表吗?不然感觉无从下手啊。

    当然,也要给到你最后希望的结果的样式。

    • 已编辑 彭123 2013年12月26日 13:53
    2013年12月26日 13:52
  • create table employee (empid int ,deptid int ,salary decimal(10,2))
    insert into employee values(1,10,5500.00)
    insert into employee values(2,10,4500.00)
    insert into employee values(3,20,1900.00)
    insert into employee values(4,20,4800.00)
    insert into employee values(5,40,6500.00)
    insert into employee values(6,40,14500.00)
    insert into employee values(7,40,44500.00)
    insert into employee values(8,50,6500.00)
    insert into employee values(9,50,7500.00)

    SELECT *, Row_Number() OVER (partition by deptid ORDER BY salary desc) rank FROM employee


    以上资料来自:http://www.cnblogs.com/fxgachiever/archive/2010/09/15/1826792.html

    希望可以帮到你。



    • 已编辑 彭123 2013年12月26日 14:00
    • 已标记为答案 seeseason 2013年12月27日 1:29
    2013年12月26日 13:57