有这样的表
id,z
1,市长
2,副市长
3,副市长2
4,县长
5,副县长
我的程序是按id排序的,正好副市长在后面第一种情况
如果删除市长和副市长1
然后再添加市长2怎么按id,正好是 市长2,副市长2呢第二种情况
更新,修改市长1,副市长2,为市长2,副市长3,并加入市长3
输出怎么按 市长2,市长3,副市长,副市长3呢也就是说队列里会增加减小 ,这样做id会不会无限增大?怎么办?请给出两种的sql语句,或者access的

解决方案 »

  1.   

    首先这个表设计的好像有些问题,一般设计类似这种表 ID只是做唯一标识的,不用来排序。
    应该添加一个列,专门用来排序,在程序中用户可以自行进行排序。如果你非要按照不规则的字符进行排序,语句如下:select * from @b 
    order by 
        case z when SUBSTRING(@b.z, 1, 2)='市长' then 1
                when SUBSTRING(@b.z, 1, 3)='副市长' then 2
                when SUBSTRING(@b.z, 1, 2)='县长' then 3
                when SUBSTRING(@b.z, 1, 3)='副县长' then 4
                else 5
        end