首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >需要在Teradata SQL中根据单词列表搜索文本字段并返回该单词

需要在Teradata SQL中根据单词列表搜索文本字段并返回该单词
EN

Stack Overflow用户
提问于 2012-09-25 23:27:53
回答 4查看 18.2K关注 0票数 3

我正在搜索一个大型数据库,查找长度在5-7个字符之间的单词列表。到目前为止,我已经做到了:

代码语言:javascript
运行
复制
Select *
  from sometable
 Where upper("Description") like any ("%ABC_123%", "%ABC_124%", "%DE_25%")

我还想返回在查询中找到的单词,但我无法在不复制subtr函数中的单词列表的情况下做到这一点。

可能有一种更好的方法来做这件事,我希望能得到一些指导。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-03-04 20:29:32

正如Rob Paller已经提到的,TD14中有正则表达式:

代码语言:javascript
运行
复制
Select sometable.*,
       REGEXP_SUBSTR(Description,'((ABC_)(123|124)|(DE_(25)))') AS match
  from sometable
 Where match <> '';

这应该比数百个赞更有效率。

此外,这可能会被简化,例如,如果您需要ABC_或DE_后跟任意两位或三位数字:

代码语言:javascript
运行
复制
       REGEXP_SUBSTR(Description,'(ABC_|DE_)([0-9]{2,3})') AS match
票数 5
EN

Stack Overflow用户

发布于 2012-09-25 23:33:49

您是否尝试过POSITION函数和多个OR条件?

代码语言:javascript
运行
复制
SELECT *
FROM TABLE
WHERE POSITION('ABC_123' IN UPPER("Description") > 0
   OR POSITION('ABC_124' IN UPPER("Description") > 0
   OR POSITION('DE_25' IN UPPER("Description") > 0;

我认为无论哪种方式,在Teradata上这都将是一个昂贵的CPU/IO进程。我不知道Teradata 13.x或更早的版本中有什么本机函数可以帮助实现这一点。Teradata 14.x (我认为是14.10)应该在本地引入正则表达式支持,这可能会使这更容易解决。

你说的是多少个单词列表?

如果使用带有LIKE谓词的子查询会怎样呢?

代码语言:javascript
运行
复制
SELECT *
FROM myTable
WHERE UPPER("Description") 
 LIKE (SELECT ListWord
       FROM myListWords);

您可能必须使您的列表单词在子查询中显示为模式:

代码语言:javascript
运行
复制
SELECT *
FROM myTable
WHERE UPPER("Description") 
 LIKE (SELECT '%' || ListWord || '%' AS ListWordPattern
       FROM myListWords);
票数 3
EN

Stack Overflow用户

发布于 2019-01-02 19:09:00

四年后,但不管怎样...可以很好地使用LIKE join (并在多个匹配的情况下进行限定)

例如:

代码语言:javascript
运行
复制
SELECT a.orig_pattern
,b.my_keyword
FROM table_with_data a
JOIN table_with_keywords b
ON a.orig_pattern LIKE '%'||b.my_keyword||'%'
QUALIFY row_number() OVER (partition by orig_pattern ORDER by orig_pattern) = 1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12586193

复制
相关文章

相似问题

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