首页 > 解决方案 > 获取列的中间值

问题描述

我的专栏中有某些记录如下

Col1
G XXXXX AB
G XXX XXX AB
G XXX XXXXX AB
G XXX AB

场景是把所有东西都放在中间,如果它以 G 开头并以 AB 结尾

所以结果会是这样的

XXXXX
XXX XXX
XXX XXXXX
XXX

标签: teradata

解决方案


我们可以尝试使用正则表达式替换从匹配记录中删除前导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。


推荐阅读