TERADATA:如何使用position函数返回字符串中子字符串的位置

时间:2014-11-18 22:55:23

标签: teradata

表中有一个字符串“Rj 0001 201410212014110301G 20141103ioR4564534 N20141021N 11R”。我想从字符串中返回值“R4564534” 我使用的查询是:

选择SUBSTR(columnX,POSITION('R'IN columnX),8);

但它返回“Rj”而不是“R4564534” 我想得到的结果是“R4564534”。

1 个答案:

答案 0 :(得分:1)

实际上是Rj'只有两个字符?不是' Rj 0001'?

已经有了' R'在你的字符串的第一个位置,当然它不是从第二个' R'开始。

你的Teradata发布了什么?

在TD14中,您可以使用INSTR从第2个字符开始:

SUBSTR(columnX,INSTR(columnX,'R',2),8)

如果你有更复杂的规则,你也可以在REGEXP_SUBSTR中使用正则表达式。