teradata - 如何在 Teradata sql 中最后一个下划线之后选择字符串
问题描述
string
我需要在 Teradata sql 中选择出现在最后一个下划线之后的那部分列。如果字符串为空白,则必须返回空白。字符串可以有多个下划线。
input output
abc_def_ghi ghi
ab_cd_ef_gh_ij ij
ab_cd cd
ab_11_22 22
如何写入正则表达式以捕获此类字符串列的结尾部分?
解决方案
instr
可以向后搜索,instr(col, '_', -1)
找到最后一个下划线:
substr(col, instr(col, '_', -1) +1)
或 RegEx,它搜索最后一个下划线和字符串结尾之间的字符:
regexp_substr(col,'[^_]*$')
如果没有下划线,两种解决方案都将返回完整的字符串。
如果将 RegEx 更改为'_[^_]*$'
它,如果没有下划线,则返回 NULL。
推荐阅读
- javascript - 如何在浏览器中使用 BASE64 键打开 PDF
- django - 从颤振发布后,获取代码 400 消息错误的请求语法
- node.js - Node.js:如何在自定义测试运行器中导入测试文件
- php - 在数据库中搜索而不考虑 MySql 和 Laravel 中的 HTML 标签
- preg-replace - 如何使用 preg_replace 删除空格 + hiphen + 空格以仅在 url slug 中使用 hiphen
- php - 如何调试这个 PHP 联系表单发件人?
- android - 如何修复 Android 导航图标大小问题
- c++ - int 函数返回值也没有返回
- c# - System.IO.Compression - 使用 ZipFileArchive 计算文件数非常慢
- javascript - JavaScript 中的 Thunk 和 currying 有什么区别?