teradata - 获取列的中间值
问题描述
我的专栏中有某些记录如下
Col1
G XXXXX AB
G XXX XXX AB
G XXX XXXXX AB
G XXX AB
场景是把所有东西都放在中间,如果它以 G 开头并以 AB 结尾
所以结果会是这样的
XXXXX
XXX XXX
XXX XXXXX
XXX
解决方案
我们可以尝试使用正则表达式替换从匹配记录中删除前导G
和尾随:AB
SELECT
Col1,
REGEXP_REPLACE(Col1, '^G\s*|\s*AB$', '') AS Col1_Middle
FROM yourTable
WHERE
Col1 LIKE 'G%AB';
演示
如果您只想要以空格开头并G
以空格结尾的记录AB
,请改用以下WHERE
子句:
WHERE Col1 LIKE 'G % AB'
使用 Oracle 给出的演示(没有基于 Web 的 Teradata 演示工具),但语法也应该适用于 Teradata。
推荐阅读
- javascript - Javascript设置运行时区
- django - 如何将聊天服务的访问权限仅限于已注册的网站
- javascript - 有没有办法阻止 prettier / prettier-now 将函数参数分解为新行
- mysql - 在 MySQL 8 中永久更改 sql_require_primary_key 值
- javascript - 我如何创建一个可以显示我在设计中并排填写的内容的实时表单?
- powerbi - 导出可用于进一步编辑的 Power BI 报表的方法
- postgresql - 在 Spark Scala 中构建 ETL 逻辑
- javascript - How do I change color and text of a span continuously by clicking on it?
- javascript - JavaScript中带有rest参数的多括号函数
- xml - 如何将子查询添加到现有的主代码