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

繰り返される重複文字の削除

    これは、もっぱらコンマであるか、最大398個の連続したコンマを持つ文字列に対して機能します。

     SELECT 
         CASE 
             WHEN TargetString NOT LIKE '%[^,]%' 
                 THEN '' /*The string is exclusively commas*/
             ELSE 
                REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(TargetString,
                REPLICATE(',',16),','), /*399/16 = 24 remainder 15*/
                REPLICATE(',',8),','),  /* 39/ 8 =  4 remainder 7*/
                REPLICATE(',',4),','),  /* 11/ 4 =  2 remainder 3*/
                REPLICATE(',',2),','),  /*  5/ 2 =  2 remainder 1*/
                REPLICATE(',',2),',')   /*  3/ 2 =  1 remainder 1*/
             END
     FROM T    
    

    より多くが必要な場合は上部に2の累乗を追加し、必要が少ない場合は上部から削除します。各段階のコメントは、この段階でうまく処理できない最小の数を示しています。

    コメント行はすべてこの形式です

    /*  L/D    =  Q remainder R */
    
    D:    Corresponds to the length of the string generated by `REPLICATE`
    R:    Is always D-1
    Q+R:  Form L for the next step
    

    したがって、別のREPLICATE(',',32),',')でシリーズを上向きに拡張するには ステージ

    D = 32 
    R = 31
    Q = 368 (399-31)
    L = (368 * 32) + 31 = 11807
    

    つまり、最大11,806文字のコンマのセクションを処理できます。



    1. MySQLのテーブルと列の権限を付与する

    2. postgresで月の最初の日付を取得する

    3. タイムスタンプ/日付時刻をUTCからESTOracleSQLに変換します

    4. pymysql.connectの実行時にエラーKeyerror255