業務でよく使っているSQLの文字列操作関数を掲載
データ補正や資料作成のため、自分がよく使う関数を乗せていく。
文字の切り出し(substring)
何文字目から何文字目を切り出したいというときに使う。
1 2 3 4 5 6 7 8 9 10 11 12 |
/*標準の書き方*/ select substring("操作対象カラム名",[切り出し開始文字位置(整数)],[切り出し終了文字位置(整数)]) from [テーブル名]; /*切り出し終了位置を省略すると最後の文字まで切り出される*/ select substring([操作対象カラム名],[切り出し開始文字位置(整数)]) from [テーブル名]; /*updateの記載例 対象カラムの3文字目から6文字目を切り出して元の値に置き換える*/ update [テーブル名] set [対象カラム] = substring([対象カラム],3,6); |
文字の切り出し②(left・rignt)
単純に頭から(又は後ろから)何文字っていうのが決まっていればleft・rightのほうが使いやすい。
1 2 3 |
/*先頭から3文字切り出したいときはleftを使う*/ select left([操作対象カラム名],3) from [テーブル名];</code> <code>/*後ろから3文字切り出したいときはrightを使う*/ select right([操作対象カラム名],3) from [テーブル名];</code> <code> |
特定文字列を指定してその前後を切り出す(split_part)
半角スペースやハイフン等、特定の文字列以前や以降の文字列を切り出す際はsplit_partが便利。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
/* テストデータ(user_name) uset_name 1 "test1" 2 "test1-test2" 3 "test1-test2-test3" 4 "test1-test2-test3-test4" */ --最初の「-」の前の文字列を切り出す select split_part(user_name,'-',1) from user_table; /*実行結果 1 "test1" 2 "test1" 3 "test1" 4 "test1" */ --2つ目の「-」以前の文字列を切り出す select split_part(user_name,'-',2) from user_table; /*実行結果 1 2 "test2" 3 "test2" 4 "test2" */ |
基本的な関数を必要な時にすぐ使えるように
書き方も難しくない基本的な関数だけど、必要な特にすぐ書けるようになることで、作業の効率が大きく変わるので備忘を兼ねて記録した。特にsplit_partはデータ加工や提出資料作成時によく使うので、しっかり覚えたい。
コメント