【发布时间】:2018-12-18 00:51:15
【问题描述】:
我正在寻找一种方法来提取 Teradata 中某个字符之前和之后的文本。例如,我有一列除了中间的单词之外是一致的 - 我想提取它。
我有这两个例子:
- “客户激活帐户 DD:ABCD,日期 XXXX”
- “客户激活帐户 DD:EFGH,日期 XXXX”
我需要存在于“:”之后和“,”之前的文本——在本例中为 ABCD 或 EFGH。到目前为止,我有SUBSTRING (column FROM POSITION ('DD: ' IN column) +4),但它会返回“:”之后的所有内容,例如ABCD, ON DATE XXXX。
【问题讨论】:
-
你试过
SUBSTRING(column FROM POSITION(‘DD: ‘ IN column) FOR 4)吗? -
如果我提取的字符总是相同的大小,那将起作用。我最终找到了一个解决方法,首先做我上面做的事情,把所有东西都放在一个临时表中,然后使用: SUBSTRING([COLUMN],0, CHARINDEX(',',[COLUMN])) AS COLUMN_NAME