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

リストからすべてのシーケンシャルブロックを取得します

    これは、自己結合とunionを使用する1つの方法です。 。

    select t1.val
    from t t1
    join t t2 on t1.val = t2.val-1
    union
    select t2.val
    from t t1
    join t t2 on t1.val = t2.val-1
    order by 1
    

    編集:これはunionを使用する代わりに、単一のクエリで実行できることに気付きました 。

    select distinct t1.val
    from t t1
    join t t2 on t1.val = t2.val-1 or t1.val = t2.val+1
    order by 1
    


    1. クエリ全体を実行せずに動的クエリで使用される列を見つける方法

    2. OracleのNCHR()関数

    3. コードファーストマイグレーションとストアドプロシージャ

    4. OracleのINSERTステートメント