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

PostgreSQLとRedshiftでサブストリング関数を使用する方法

    データベース内の文字列には、その文字列にサブ文字列として埋め込まれた情報が含まれている場合があります。この文字列は、会社のWebサイトのアクティビティまたは追跡番号に存在する可能性のあるID番号である可能性があります。

    これは、Webサイトのトラフィックアクティビティを監視する会社が、アクティビティ追跡IDに特定の命名規則を使用している例です。命名規則は、6文字で1番目の位置にある「アクティビティID」、7文字で2番目に表示される「顧客ID」、3番目の位置にある3文字の「ページID」です。これらの3つのID番号は、分割文字なしで1つの文字列にまとめられます。この例では、追跡番号はWSL194OH08856CASのようになります。

    顧客ID番号を引き出すことができます。そのためには、次の部分文字列関数を使用できます。

    SUBSTRING("WSL194OH08856CAS",7,7)

    顧客ID番号は7桁の長さで、7番目の位置から始まることを知っているので、上記の式は次のように実行されます。

    また、アクティビティIDだけが必要な場合もあります。これを取得するには、同じ機能を少し異なる方法で使用します。

    SUBSTRING("WSL194OH08856CAS",1,6)

    前のコードスニペットと同じように、これは1番目の位置から始まり、6文字続く文字列を返します。

    最後の例では、ページIDに関心があるかもしれません。この場合、ページIDは文字列の最後にあります。このために、次のような関数を使用できます:

    SUBSTRING("WSL194OH08856CAS",14)

    この例では、最後の引数を省略することで、14番目の位置にある文字を含め、その後のすべてを返すようにデータベースに指示しています。

    この関数を使用すると、列に含まれる可能性のあるサブストリングの既知の位置と長さに基づいて、列内のストリングを解析できるようになりました。これは、元の文字列全体とは異なる方法でそれらの部分文字列を使用できる場合に、列を複数の部分文字列に分割するための便利な手法です。


    1. クエリ間のOracle日付

    2. ストアドプロシージャでテーブルを切り捨てる

    3. DATE_SUB()の例– MySQL

    4. Postgresは手動でシーケンスを変更します