sql - 如何在“,”或“-”或“”之前取子字符串?
问题描述
我在 Presto 中有两个数据集,可以与"po_num"
.
第一个数据集具有7 或 10 位"po_num"
的清洁度。(例如 1234567)
然而,第二个数据集中的 Po_num 有额外的字符串,要么以"," or "-" or " ". (e.g. 1234567-1 or 1234567,1 or 1234567 -1)
我想我需要一个功能
1) 检测第二个 po_num 中第一个非数字字符串的位置和
2)在位置之前取一个子字符串。或者任何其他方式来处理这个......
有什么建议吗?
解决方案
假设您希望匹配的 7 或 10 位数字总是连续出现,没有任何其他中间字符,那么您可以尝试REGEXP_LIKE
在此处使用:
SELECT *
FROM table1 t1
INNER JOIN table2 t2
ON REGEXP_LIKE(t2.Po_num, '\b' || t1.po_num || '\b');
推荐阅读
- reactjs - Typescript React HOC 问题
- reactjs - Sinon:测试 React 组件方法正在调用函数传递作为道具(Mocha + Chai + Sinon 用于单元测试)
- android - Okhttp:如何使用循环添加多部分表单部分?
- xamarin.forms - 如何从 Xamarin Form 应用程序发送推送通知?
- sql - 如何列出特定时间段内当月没有任何订单的所有月份
- python - 为什么这个 python 代码的结果是正确的?
- php - 在数据库中获取一行
- sql - SQL 中完全唯一的行和列
- php - 使用 PHP 从 HTML 表单将数据插入 MySQL 数据库
- java - android grafika ContinuousCapture 活动问题