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

2つの列の間の数値のリストを取得します

    値をコンマ区切りにする必要がある場合は、そのようにすることができます(または、11gr2の場合は、 listAgg

    WITH NUMS AS(
         SELECT 10 STARTNR  , 15 ENDNR  FROM DUAL UNION
        SELECT 18 STARTNR  , 22 ENDNR  FROM DUAL UNION
        SELECT 34 STARTNR  , 50 ENDNR  FROM DUAL )       , 
     NUMSBETWEEN AS(
         SELECT distinct (level + startnr)-1 seq , startnr, endnr
           FROM NUMS
          CONNECT BY (LEVEL +STARTNR ) <= ENDNR+1
          )
    SELECT startnr,
           LTRIM(MAX(SYS_CONNECT_BY_PATH(seq,','))
           KEEP (DENSE_RANK LAST ORDER BY curr),',') AS seq
    FROM   (SELECT startnr,
                   seq,
                   ROW_NUMBER() OVER (PARTITION BY startnr ORDER BY seq) AS curr,
                   ROW_NUMBER() OVER (PARTITION BY startnr ORDER BY seq) -1 AS prev
            FROM   numsBetween)
    GROUP BY startnr
    CONNECT BY prev = PRIOR curr AND startnr = PRIOR startnr
    START WITH CURR = 1;
    

    STARTNR SEQ

    10 10,11,12,13,14,15
    18 18,19,20,21,22
    34 34,35,36,37,38,39,40,41,42,43 、44、45、46、47、48、49、50



    1. MIN/MAXとORDERBYおよびLIMIT

    2. mysqlをpdoに変更し、結果を変数に格納します

    3. FlaskでSQLAlchemyを使用してデータベース関数を呼び出すにはどうすればよいですか?

    4. 接続文字列としてのMySQLSecureString