翻译页面
本页面由 AI 辅助从英文翻译而来。如两者存在差异,以英文版本为准。
SPLIT_PART
按分隔符拆分源字符串,并返回指定的部分(从 1 开始计数)。
另请参阅:
[SELECT]
语法
SELECT SPLIT_PART(source, sep, part) FROM <multipartIdentifier>;
参数
source
要执行拆分的字符串字面量或字符串列。
sep
用作分隔符的一个或多个字符。
如果
sep由多个字符组成,则每个字符都被视为分隔符。
仅支持 ASCII(1 字节)符号作为分隔符。
part
要返回的拆分后字符串的元素(从 1 开始)。负值用于从最后一个元素开始倒数。
返回值
返回一个字符串。
示例
从以正斜杠分隔的字符串中提取元素
- StackQL
- 结果
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
- 结果
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