解决方案 »

  1.   

    是不是要将2,4,5,6的ID插入到T1表中?name值需要吗?
      

  2.   


    原始数据:
    单号        订单名称
      1                    AB1
      2                    AC1
      3                    AD1
      8                    AF1
      9                    AR3
      12                  AT5需要结果获得单号最大值 之前所有没有出现的单号
    要的结果:4、5、6、7、10、11
      

  3.   

    不是
    原始数据:
    单号        订单名称
      1                    AB1
      2                    AC1
      3                    AD1
      8                    AF1
      9                    AR3
      12                  AT5需要结果获得单号最大值 之前所有没有出现的单号
    要的结果:4、5、6、7、10、11
      

  4.   

    SELECT T2.number 单号
    FROM 原始数据 T1
    RIGHT JOIN master..spt_values T2 ON T1.单号=T2.number
    WHERE T2.type='P'AND T2.number>0 AND T2.number<=200 AND T1.单号 IS NULL直接和数字表连接不就出来了吗
      

  5.   

    Select * from(select ROW_NUMBER() OVER (ORDER BY number) AS 缺失的订单号
    from master.dbo.spt_values  
    where 
    type='P' and 
    number<=200 ---这块设置你订单号的长度,一般订单都是日期+流水,所以我按照这个格式做
    ) t
    where                                        --↓↓↓↓↓↓↓↓↓↓这块是截取订单后面的流水的转成数字
    RowNumber not in (select Convert(int,subString(订单号,7,3))QiHao from 订单表 )
    ---这样就直接查询出订单流水中断的所有订单流水号了。
      

  6.   

    --参考下,看行不行?         select distinct number from master..spt_values as s
    where not exists
                     (select 订单号 from tb where 订单号=s.number) 
                           and number between (select min(订单号) from tb) and (select max(订单号) from tb)
    order by number