首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Teradata按反向顺序搜索字符串。

Teradata按反向顺序搜索字符串。
EN

Stack Overflow用户
提问于 2017-03-10 09:33:13
回答 3查看 3.2K关注 0票数 2

我们正在从MS进行转换。原始代码是

( reverse(ltrim(rtrim(substring(reverse("string"),1,(charindex(‘',反向(“string”)

因此,它所做的是在末尾搜索字符串,直到找到一个空格时,它才得到该字符串的值。

例如。

'ABCD 123‘结果是'123'

‘步骤123-2’结果是' 3-2‘

到目前为止,我有以下选择substr('ABCDE 1234',字符(‘ABCDE 1234')-2),但不知道如何在Teradata中进行反向搜索:(

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-03-10 21:53:09

substr + instr

代码语言:javascript
复制
select  'ABCD 123'                      as str
       ,substr(str,instr(str,' ',-1)+1) as token
;       

+----------+-------+
|   str    | token |
+----------+-------+
| ABCD 123 |   123 |
+----------+-------+
代码语言:javascript
复制
select  'STEP 12 3-2'                   as str
       ,substr(str,instr(str,' ',-1)+1) as token
;       

+-------------+-------+
|     str     | token |
+-------------+-------+
| STEP 12 3-2 |  3-2  |
+-------------+-------+
票数 1
EN

Stack Overflow用户

发布于 2017-03-10 15:31:15

您可以尝试如下:

查询:

代码语言:javascript
复制
select strtok('STEP 12 3-2',' ',character_length('STEP 12 3-2') - character_length(Oreplace('STEP 12 3-2',' ',''))+1)

输出:

代码语言:javascript
复制
3-2

查询:

代码语言:javascript
复制
select strtok('ABCD 123',' ',character_length('ABCD 123') - character_length(Oreplace('ABCD 123',' ',''))+1)

输出:

代码语言:javascript
复制
123

strtok用特定的分隔符打断字符串,而character_length + oreplace将给出出现“空格”的次数。

票数 0
EN

Stack Overflow用户

发布于 2017-03-10 21:57:13

regexp_substr (非常简单,如果您知道正则表达式,但附带更高的CPU成本)

代码语言:javascript
复制
select  'ABCD 123'                  as str
       ,regexp_substr(str,'[^ ]*$') as token
;       

+----------+-------+
|   str    | token |
+----------+-------+
| ABCD 123 |   123 |
+----------+-------+
代码语言:javascript
复制
select  'STEP 12 3-2'                   as str
       ,regexp_substr(str,'[^ ]*$') as token
;       

+-------------+-------+
|     str     | token |
+-------------+-------+
| STEP 12 3-2 |  3-2  |
+-------------+-------+
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42714879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档