获取列的中间值
Get the Middle Value of the Column
我的专栏中有如下某些记录
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
开头后跟 space 并以 AB
结尾后跟 space 的记录,则使用以下 WHERE
子句改为:
WHERE Col1 LIKE 'G % AB'
使用 Oracle 给出的演示(没有基于 Web 的 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 yourTable
WHERE
Col1 LIKE 'G%AB';
如果您只想要以 G
开头后跟 space 并以 AB
结尾后跟 space 的记录,则使用以下 WHERE
子句改为:
WHERE Col1 LIKE 'G % AB'
使用 Oracle 给出的演示(没有基于 Web 的 Teradata 演示工具),但语法应该也适用于 Teradata。