Teradata 获取列的中间值

Teradata 获取列的中间值,teradata,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 your

我在我的专栏中有一些记录如下

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。

谢谢@Tim Biegeleisen。这有帮助