sql - 正则表达式 SQL BigQuery 获取 '_' 之间的数字
问题描述
考虑到我有一张桌子。
第一:
用户身份 | 姓名 |
---|---|
1 | OFF472_100_012_280421 |
1 | PPUU321_010_012_280421 |
2 | HHTUE_011_012_280421 |
2 | VENT471_012_012_280421 |
我想在名称列中的两个“_”之间提取第一个数字
理想的表应该是这样的
用户身份 | 姓名 | 数字 |
---|---|---|
1 | OFF472_100_012_324504 | 100 |
1 | PPUU321_010_012_345625 | 10 |
2 | HHTUE_011_012_345345 | 11 |
2 | VENT471_012_012_345567 | 12 |
请帮我用sql查询!谢谢。
解决方案
REGEXP_EXTRACT
与捕获组一起使用:
SELECT user_id, name, REGEXP_EXTRACT(name, r'^[^_]+_0*(\d+)')
FROM yourTable;
注意:您似乎还想去掉任何前导零,所以我已经这样做了。如果要保留所有数字,请使用^[^_]+_(\d+)
.
推荐阅读
- svn - 如何迁移具有 svnadmin 的 SVN 存储库:svndiff 数据解压失败
- laravel - Laravel 命名约定数据透视表
- python - 如何使用带有多个 URL(输入)的 Selenium、Bs4 和 Docx 使用 Python 进行 WebScrape 到多个输出 Docx 文件中?
- vue.js - Vue警告:属性或方法“item”未在实例上定义,但在渲染期间被引用
- reactjs - 在我的 Todo ReactApp 中,我使用的是通量。使用 useEffect 我添加了一个监听器,但是当 Todostore 更新页面时不会重新呈现。为什么不?
- javascript - textarea 的 quill 文本编辑器无法与 bootstrap 一起正常工作
- sql - 将 UTF-8 文本文件中的 varchar 插入 MSSQL 表
- spring-boot - 如何使用 Embedded MQ 为 IBM MQ 编写测试用例?
- python - 在 Python 中使用可变数量的图像填充列表
- azure - 有没有办法更改逻辑应用默认时区?