# SPLIT_PART

> StackQL の SPLIT_PART 関数：文字列を区切り文字で分割し、1 から数えた位置の部分を返します（リソース ID や ARN の分解に便利）。

Source: https://stackql.io/ja/language-spec/functions/string/split_part

ソース文字列を区切り文字で分割し、指定した部分（1 から数える）を返します。  

関連項目：  
[[` SELECT `]](/language-spec/select) 

* * * 

## 構文

```sql
SELECT SPLIT_PART(source, sep, part) FROM <multipartIdentifier>;
```

## 引数

__*source*__  
分割を実行する文字列リテラルまたは文字列型の列です。

__*sep*__  
区切り文字として使用する 1 文字以上の文字です。  

> `sep` が複数の文字で構成されている場合は、各文字が区切り文字として扱われます。  

> 区切り文字としてサポートされているのは ASCII（1 バイト）の記号のみです。  

__*part*__  
返す要素の、分割後の文字列における位置（1 から数える）です。負の値を指定すると、最後の要素から逆方向に数えます。  

## 戻り値
文字列を返します。

* * *

## 例

### スラッシュで区切られた文字列から要素を抽出する

**StackQL**

```sql
SELECT name,  
 split_part(id, '/', 3) as subscription,
 split_part(id, '/', 5) as resource_group,
 json_extract(properties, '$.hardwareProfile.vmSize') as vm_size
FROM azure.compute.virtual_machines 
 WHERE resource_group_name = 'stackql-ops-cicd-dev-01' 
 AND subscription_id = '273769f6-545f-45b2-8ab8-2f14ec5768dc';
```

**結果**

```
|------|--------------------------------------|-------------------------|-----------------|
| name |             subscription             |     resource_group      |     vm_size     |
|------|--------------------------------------|-------------------------|-----------------|
| test | 273769f6-545f-45b2-8ab8-2f14ec5768dc | stackql-ops-cicd-dev-01 | Standard_D2s_v3 |
|------|--------------------------------------|-------------------------|-----------------|
```

### URL から最後の要素を抽出する

**StackQL**

```sql
SELECT
name,
SPLIT_PART(network, '/', -1) as network,
SPLIT_PART(region, '/', -1) as region
FROM google.compute.vpn_gateways WHERE project = 'stackql-demo';
```

**結果**

```
+------------------------+-----------------------+----------------------+
| name                   | network               | region               |
+------------------------+-----------------------+----------------------+
| gcp-aws-vpn-gateway    | stackql-shrd-vpc-nw   | australia-southeast1 |
+------------------------+-----------------------+----------------------+
```

詳細については、[https://github.com/nalgeon/sqlean/blob/main/docs/text.md](https://github.com/nalgeon/sqlean/blob/main/docs/text.md) を参照してください。
