sql - 从由特殊字符分隔的字符串数组中删除特定后缀
问题描述
我想从域名字段中删除“.(something)”后缀,该字段是由管道(|)分隔的字符串数组
数据如下所示——
ID domain
1 ab23c45|xyz167a.abc|d1ef76om.abc|rx08bj23
2 omg23hy5|xyz167a|ab23c45.xyz|jhy2ft3.def
结果应该看起来像 -
ID domain
1 ab23c45|xyz167a|d1ef76om|rx08bj23
2 omg23hy5|xyz167a|ab23c45|jhy2ft3
注意:后缀可以是任何东西。需要一个适用于任何后缀的通用解决方案
解决方案
以下是 BigQuery 标准 SQL
#standardSQL
SELECT id,
(
SELECT STRING_AGG(REGEXP_REPLACE(domain, r'\.\w+$', ''), '|')
FROM UNNEST(SPLIT(domain, '|')) domain
) domain
FROM `project.dataset.table`
如果适用于您的问题的样本数据 - 输出是
Row id domain
1 1 ab23c45|xyz167a|d1ef76om|rx08bj23
2 2 omg23hy5|xyz167a|ab23c45|jhy2ft3
推荐阅读
- csvkit - 使用 csvkit 对多列进行排序,某些列倒序
- html - Tumblr HTML 网页
- perl - Perl eval('use someModule;') 多次调用。是否也多次评估?
- c# - 未找到 WPF 资源绑定(输出错误)
- android - Android导航溢出菜单项重叠片段
- python - 无法为 pip 创建 Python 包
- docker - 如何从 hyperledger 的 hfc-key-store 中的真实 fabric-ca-server 证书派生证书?
- azure-devops - 发布管道不会在运行中填充 VSTS 中的测试用例选项
- python - 如何使用 pycrypto 执行河豚解密
- office365 - Microsoft graph 批量调用 OneNote 页面重命名失败,并显示消息“Invalid JSON body for request id”