【问题标题】:Teradata SQL assistantTeradata SQL 助手
【发布时间】:2020-12-07 16:34:23
【问题描述】:

如何使用 teradata 执行以下操作,

输入字符串- 'data1 data2 (1) (Ab-123)'

需要输出- Ab-123

所以基本上我想要最后一个括号中的数据。

【问题讨论】:

  • 最后一个括号总是最后一个字符还是可能有其他字符,例如'data1 data2 (1) (Ab-123)bla'?
  • 谢谢dnoeth。不,只有括号会在最后。括号后没有字符。

标签: sql database regex-group teradata-sql-assistant teradatasql


【解决方案1】:

这看起来像一个正则表达式:

select regexp_substr('data1 data2 (1) (Ab-123)',
                      '[(]([^)]*)[)]$'
                     )

【讨论】:

  • 我相信它是 Teradata 中的 regexp_substrSELECT REGEXP_SUBSTR('data1 data2 (1) (Ab-123)', '[(]([^)]*)[)]$'); 虽然保留在括号中,所以可能类似于 SELECT REGEXP_REPLACE('data1 data2 (1) (Ab-123)', '^.*[(]([^)]*)[)]$', '\1');
  • @JNevill 。 . .你知道什么! Teradata 重新命名了 Presto 的文档:teradata.github.io/presto/docs/148t/functions/regexp.html。因为函数因数据库而异,所以我通常在回答之前检查(是的,我有时会这样做)。显然,它并不总是有效。
  • 我从未接触过 presto 文档。它比 Teradata 的知识库要好得多!你即将破百万!我们需要喝点香槟!
  • @JNevill:Presto 文档可能更好,但它是 Presto 语法,而不是 Teradata :-)
  • @JNevil 谢谢。它完美地工作。有任何参考文档或链接可以理解这一点吗?
猜你喜欢
  • 1970-01-01
  • 2016-05-10
  • 2023-03-15
  • 2018-11-19
  • 2014-03-10
  • 2019-02-05
  • 2017-07-19
  • 2013-10-13
  • 2019-04-12
相关资源
最近更新 更多