sql >> データベース >  >> RDS >> Sqlserver

グループの終値

    これはあなたの例では機能します。他のデータでは機能しない場合はお知らせください

    create table #Range 
    (
      [Start] INT,
      [End] INT
    )
    
    insert into #Range ([Start], [End]) Values (1, 8)
    insert into #Range ([Start], [End]) Values (9, 13)
    insert into #Range ([Start], [End]) Values (14, 20)
    insert into #Range ([Start], [End]) Values (20, 25)
    insert into #Range ([Start], [End]) Values (30, 42)
    insert into #Range ([Start], [End]) Values (42, 49)
    insert into #Range ([Start], [End]) Values (60, 67)
    
    
    
    ;with RangeTable as
    (select
        t1.[Start],
        t1.[End],
        row_number() over (order by t1.[Start]) as [Index]
    from
        #Range t1
    where t1.Start not in (select 
                          [End] 
                   from
                      #Range
                      Union
                   select 
                      [End] + 1
                   from
                      #Range
                   )
    )
    select 
        t1.[Start],
        case 
       when t2.[Start] is null then
            (select max([End])
                         from #Range)
           else
            (select max([End])
                         from #Range
                         where t2.[Start] > [End])
    end as [End]    
    from 
        RangeTable t1
    left join 
        RangeTable t2
    on
        t1.[Index] = t2.[Index]-1 
    
    drop table #Range;
    


    1. CGIインターフェイスを介してC++バイナリを呼び出すにはどうすればよいですか?

    2. SQLServerのLIMIT10..20

    3. Where句でAliasを使用する方法は?

    4. SQLiteDiskIOExceptionエラーコード10:ディスクI/Oエラー