10个数字 1,2,3,4,5,6,7,8,9,10 
其中 数字4没了 数字7没了 (状态为已销售) 
我的sql要求将 状态为 未销售的 数字列出来 
但是要求是号段形式 如: 1-3, 5-6, 8-10 
如上!!!!!!!!!!!!!!!!! 
4和7 状态为已销售.... 
其他的为未销售

解决方案 »

  1.   

    CREATE TABLE tb
    (num INT)
    INSERT tb SELECT 
    1 UNION ALL SELECT 
    2 UNION ALL SELECT 
    3 UNION ALL SELECT 
    5 UNION ALL SELECT 
    6 UNION ALL SELECT 
    8 UNION ALL SELECT 
    9 UNION ALL SELECT 
    10 UNION ALL SELECT 
    11
    GO
    ;WITH cte AS
    (
    SELECT rn=row_number()OVER(ORDER BY num)-num,* FROM tb 

    SELECT rtrim(min(num))+'-'+rtrim(max(num)) AS fw
    FROM cte 
    GROUP BY rn
    ORDER BY fw
    /*
    fw  
    ----
    1-3 
    5-6 
    8-11*/
      

  2.   

    能不能用Oracle 实现呢???  
      

  3.   


    哎!早不说,浪费大家的表情。去数据库开发的Oracle社区问问吧!