表:
手机号码  号码1
1382658   0000
1382658   0001
1382658   0002
1382658   0004
1382658   0005
1382659   0001
1382659   0002
1382659   0004
1382659   0005
我想将输出结果显示为:
手机号码   开始号码   结束号码
1382658    0000       0002
1382658    0004       0005
1382659    0001       0002
1382658    0004       0005用sql语句或C#实现都可以
要如何写

解决方案 »

  1.   

    表名 tb1 两个字段 a 和 b
    SQL如下:DECLARE @num nvarchar(50)
    DECLARE @subnum nvarchar(11)
    DECLARE @subnum1 nvarchar(11)DECLARE CUR_FindCURSOR FOR select a+b from tb1 order by a
    OPEN CUR_Find
    FETCH NEXT
    FROM CUR_Find
    INTO @num
    set @subnum1=@num
    set @subnum=@num
    FETCH NEXT
    FROM CUR_Find
    INTO @num
    WHILE @@fetch_status = 0
    BEGIN
    if convert(numeric(11,0),@subnum,11)+1<>convert(numeric(11,0),@num,11)
    begin
    print(@subnum1+'-'+right(@subnum,4))
    set @subnum1=@num
    set @subnum=@num
    end
    else
    set @subnum=@num
    FETCH NEXT
    FROM CUR_Find
    INTO @num
    END 
    print(@subnum1+'-'+right(@subnum,4))
    CLOSE  CUR_Find
    DEALLOCATE   CUR_Find