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

postgresqlで行を多くの行に分割する方法

    regexp_split_to_tableを使用できます 損傷に対するネガティブな先読みを伴う;

    SELECT "ID", regexp_split_to_table("Cars", '((, (?!damaged))| and )') "Cars" 
    FROM mytable;
    
     ID |      Cars
    ----+-----------------
      1 | opel
      1 | honda
      1 | land rover
      2 | ford
      2 | porshe, damaged
      3 | volkswagen
      4 | opel
      4 | seat, damaged
    (8 rows)
    

    テストするSQLfiddle

    編集:新しい例では、正規表現を少し調整する必要がありました。

    SELECT "ID", regexp_split_to_table("Cars", '(([,;] (?!damaged))|[,;]? and )') "Cars" 
    FROM mytable;
    

    別のSQLfiddle




    1. PostgreSQLのプロシージャ/関数からRESTfulWebサービスを呼び出す

    2. ClusterControl 1.5-自動バックアップ検証、バックアップとクラウド統合からスレーブを構築

    3. 2つの日付の間のレコードの選択

    4. ユーザーのMYSQLSELECTランク(xより大きくyより小さい)