0

我仔细查看了 Teradata 语法参考但无济于事

我有一些数字行:

ID
Mickey
Laura9
Larry59N

如何从行中删除整数?

我知道 SUBSTR(id, 0, index(id, '%FORMAT%')) 会起作用,但我不知道我可以在 %FORMAT% 区域输入什么来查找整数。

4

2 回答 2

3

您可以使用 oTranslate 删除数字:

BTEQ -- 输入您的 SQL 请求或 BTEQ 命令:

选择 the_name, oTranslate( the_name, 'a0123456789','a')
从
( SELECT 'Larry59N' the_name FROM (SELECT 'X' DUMMY) a
         联合所有
         从(SELECT 'X' DUMMY)中选择“Laura9”
         联合所有
         SELECT 'Mickey' the_name FROM (SELECT 'X' DUMMY) c
       ) d
;


 *** 查询完成。找到 3 行。返回 2 列。
 *** 总经过时间为 1 秒。

the_name oTranslate(the_name,'a0123456789','a')
-------- ------------------------------------------ ------------
拉里59N 拉里N
劳拉9 劳拉
米奇米奇

HTH。

干杯。

于 2011-09-16T12:53:25.360 回答
1

不幸的是,我不相信 Teradata 的原生功能可以实现这一点。我建议查看 Teradata 开发人员交流 (链接) 上发布的 UDF。特别是该功能eReplaceChar看起来可以帮助您完成您希望使用此数据执行的操作。在上面的链接中找到的 UDF 是在 Apache 2.0 许可下发布的,因此使用它们应该不会有任何问题。

于 2011-07-12T21:28:09.987 回答