列の2つの数値の間のすべての行を削除する方法

mhsankar

2つの列を持つテーブルがidあり、typ

DECLARE @tb1 AS TABLE (id INT, typ INT)
INSERT INTO @tb1
(
    id,
    typ
)
VALUES
(1,1),(2,3),(3,2),(4,3),(5,1),(6,2),(7,3),(8,3),(9,1)
,(10,3),(11,3),(12,3),(13,2),(14,3),(15,1)

で並べ替えられidた行を見るtyp = 1と、ある行とtyp = 2それに続く次の行の間にあるすべての行を削除したいと思います。

私はこの結果が欲しいです:

id          typ
----------- -----------
1           1
3           2
4           3
5           1
6           2
7           3
8           3
9           1
13          2
14          3
15          1
DhruvJoshi

これは、古典的なギャップと島の問題タイプの質問です。ギャップと島に関するこの優れた記事を読むことをお勧めします

以下のようなクエリを使用できます See working demo

;
with BoundarySuspects as 
(
    select 
        a.*, 
        seqNumber=row_number() over( order by id asc)
    from @tb1 a
    where a.typ=1 or a.typ=2 
 ),
 GapMap as
 (
     select 
        GapFrom= a.id,
        GapTill= b.id
    from BoundarySuspects a
         join
         BoundarySuspects b
        on a.typ=1 and b.typ=2 and b.seqNumber=a.seqNumber+1 
 )
    select 
        t.* 
     from @tb1 t 
         left join 
     GapMap g
         on t.id >GapFrom and t.id <GapTill
     where GapFrom is NULL

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

2つの数値間のすべての空白を置き換える方法は?

分類Dev

SQLServerの2つの数値の間のすべての数値を取得する方法

分類Dev

vbaの2つの空のセルの間の列のすべての値を合計する方法は?

分類Dev

2つの条件の間のすべてを削除してパンダの行を凝縮する方法

分類Dev

USQL-USQLの2つの文字列行の間のすべての行を選択する方法

分類Dev

SASの2つの値の間の行を削除する

分類Dev

2つの特定の行番号の間のすべての行を削除します

分類Dev

2つの整数の間のすべての数値を合計する

分類Dev

列の条件に基づいて行を削除する(2つの値の間に行を保持する)

分類Dev

SQL Server 2008R2のすべての行で値が1つしかない複数の列を削除する方法

分類Dev

行の2つの記号の間の文字列を削除する

分類Dev

2つの行の間で変化するすべての列を表示する

分類Dev

すべての列の値のない行を削除する

分類Dev

配列のすべての要素が2つの値の間にあるかどうかを確認する方法

分類Dev

linqリストで2つの数値の間のすべての一致を見つける方法

分類Dev

数値以外の値を含むすべての行を削除する方法

分類Dev

dplyrの2つの列名の間のすべての列を削除します

分類Dev

dplyrの2つの列名の間のすべての列を削除します

分類Dev

1つの列を除いてすべての値が同じである2つの行を取得する方法

分類Dev

rの列の2つの特定の文字値の間のすべての行にラベルを付ける方法は?

分類Dev

1行の配列のすべての値のすべてのハッシュ文字を削除する方法

分類Dev

2つの文字列の間のすべての文字列を削除します

分類Dev

列の2つの値の間に複数の行を追加する

分類Dev

1 つの列の値が特定の値を超える場合、2 つの列のすべての行を削除します。

分類Dev

特定の列値の間の行を削除する方法

分類Dev

2つの数値の間のすべての整数の合計

分類Dev

RのすべてのNULL値を持つ行を削除する方法

分類Dev

2つの異なる次元のnumpy配列間ですべての一意の数値を取得する最速の方法

分類Dev

2 つの既知のポイント間の変数部分文字列を除くすべてのテキストを削除する方法は?

Related 関連記事

  1. 1

    2つの数値間のすべての空白を置き換える方法は?

  2. 2

    SQLServerの2つの数値の間のすべての数値を取得する方法

  3. 3

    vbaの2つの空のセルの間の列のすべての値を合計する方法は?

  4. 4

    2つの条件の間のすべてを削除してパンダの行を凝縮する方法

  5. 5

    USQL-USQLの2つの文字列行の間のすべての行を選択する方法

  6. 6

    SASの2つの値の間の行を削除する

  7. 7

    2つの特定の行番号の間のすべての行を削除します

  8. 8

    2つの整数の間のすべての数値を合計する

  9. 9

    列の条件に基づいて行を削除する(2つの値の間に行を保持する)

  10. 10

    SQL Server 2008R2のすべての行で値が1つしかない複数の列を削除する方法

  11. 11

    行の2つの記号の間の文字列を削除する

  12. 12

    2つの行の間で変化するすべての列を表示する

  13. 13

    すべての列の値のない行を削除する

  14. 14

    配列のすべての要素が2つの値の間にあるかどうかを確認する方法

  15. 15

    linqリストで2つの数値の間のすべての一致を見つける方法

  16. 16

    数値以外の値を含むすべての行を削除する方法

  17. 17

    dplyrの2つの列名の間のすべての列を削除します

  18. 18

    dplyrの2つの列名の間のすべての列を削除します

  19. 19

    1つの列を除いてすべての値が同じである2つの行を取得する方法

  20. 20

    rの列の2つの特定の文字値の間のすべての行にラベルを付ける方法は?

  21. 21

    1行の配列のすべての値のすべてのハッシュ文字を削除する方法

  22. 22

    2つの文字列の間のすべての文字列を削除します

  23. 23

    列の2つの値の間に複数の行を追加する

  24. 24

    1 つの列の値が特定の値を超える場合、2 つの列のすべての行を削除します。

  25. 25

    特定の列値の間の行を削除する方法

  26. 26

    2つの数値の間のすべての整数の合計

  27. 27

    RのすべてのNULL値を持つ行を削除する方法

  28. 28

    2つの異なる次元のnumpy配列間ですべての一意の数値を取得する最速の方法

  29. 29

    2 つの既知のポイント間の変数部分文字列を除くすべてのテキストを削除する方法は?

ホットタグ

アーカイブ