LoginSignup
15
13

More than 5 years have passed since last update.

SQLでURLの一部だけを切り出す

Last updated at Posted at 2014-11-18

SQLでURLの部分的切り出しを行う

背景

DB内にURLを格納しており、取り出してから文字列操作を行わず、SQLで対応する

対象DB

RedshiftとPostgreSQLで動作確認済
※ RedshiftはPostgreSQLをベースにしている様です。

切り出し

プロトコル部分をなくす

Redshift
LTRIM(LTRIM(url, 'http://'), 'https://')

[2015/03/02追記]
上記の内容では、domain部分の一部まで切り取られてしまいます。
なぜなら、LTRIMは指定した文字列が連続する限り取り除くからです。
なので、正しくは以下の内容です。

Redshift
LTRIM(LTRIM(url, 'htps'), ':/')

ドメイン部分切り出し

Redshift
REGEXP_SUBSTR(url, '(http://|https://)[^/]*')
  • httphttpsの2つのプロトコルをまとめて取り除く
  • [^/]*でプロトコル以降、初めての/部分までを切り出す

クエリパラメータを削除する

Redshift
SPLIT_PART(url, '?', 1)
  • 1がマッチした部分をとりだし、ここでは、?より前
15
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
13