teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

推敲

2019/09/12 08:56

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -5,7 +5,7 @@
5
5
  今の仕様のまま行うならエラーを検知する必要がありますので、専用のストアド関数を作成するしかないと思いますけど。
6
6
 
7
7
  若しくは、仕様を変更して全角文字に置き換えたものに対しての取り出しにする。
8
- 但し、全角/半角変換について最低限変換対象のリストはについては自作する必要がありますが。
8
+ 但し、全角/半角変換について最低限変換対象のリストはについては自作する必要がありますが。
9
9
  ※変換自体は**translate**
10
10
 
11
11
  ただ、3番目の`_`以前を取り出すという事で良いなら、`_`区切りの配列に見立てて、以下の様に取り出せます。

2

推敲

2019/09/12 08:56

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -5,7 +5,7 @@
5
5
  今の仕様のまま行うならエラーを検知する必要がありますので、専用のストアド関数を作成するしかないと思いますけど。
6
6
 
7
7
  若しくは、仕様を変更して全角文字に置き換えたものに対しての取り出しにする。
8
- 但し、全角/半角変換について最低限変換対象のリストはについては自作する必要がありますけ
8
+ 但し、全角/半角変換について最低限変換対象のリストはについては自作する必要がありますけ
9
9
  ※変換自体は**translate**
10
10
 
11
11
  ただ、3番目の`_`以前を取り出すという事で良いなら、`_`区切りの配列に見立てて、以下の様に取り出せます。

1

追記

2019/09/12 07:44

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -6,4 +6,10 @@
6
6
 
7
7
  若しくは、仕様を変更して全角文字に置き換えたものに対しての取り出しにする。
8
8
  但し、全角/半角変換について最低限変換対象のリストはについては自作する必要がありますけど。
9
- ※変換自体は**translate**
9
+ ※変換自体は**translate**
10
+
11
+ ただ、3番目の`_`以前を取り出すという事で良いなら、`_`区切りの配列に見立てて、以下の様に取り出せます。
12
+ ```SQL
13
+ select array_to_string((string_to_array(val,'_'))[1:3], '_')
14
+ from (values('配管_SS塗装_ポンプ棟_低率_八仙'),('縞鋼板_管理棟_ブロワー室_北部浄')) as w(val)
15
+ ```