从 Netezza 中的字符串获取完全匹配
Posted
技术标签:
【中文标题】从 Netezza 中的字符串获取完全匹配【英文标题】:Get exact match from a string in Netezza 【发布时间】:2015-09-21 19:26:42 【问题描述】:我正在尝试从字符串中提取子字符串并与其他字符串进行比较,看看它是否完全匹配。有人可以分享您对如何使用正则表达式完成此操作的想法。谢谢。
**Input column**
abc
abcd
**What I have tried?**
LIKE '%abc%'
**Output**
abc
abcd
但在这种情况下,我只需要 abc 并丢弃 abcd。如何使用 LIKE 来完成。我想 LIKE 不支持完成这就是我有兴趣使用正则表达式来解决这个问题的原因。谢谢。
【问题讨论】:
你能举一些例子吗?为什么你认为你需要一个正则表达式? 在问题中添加了更多详细信息。 似乎是一个简单的col = 'abc'
,或者如果您想将尾随空格视为不匹配的col LIKE 'abc'
【参考方案1】:
解决方案取决于您如何区分“abc”和“abcd”。根据您的问题,我推断答案将是单词边界的正则表达式概念。
Netezza 不支持 LIKE 中的通用正则表达式功能,因此您必须使用 Netezza SQL 扩展工具包中包含的 regexp_extract 函数。
select regexp_extract('abc abcd','\babc\b');
REGEXP_EXTRACT
----------------
abc
(1 row)
SQL 扩展工具包包含在 Netezza 中,但必须由您的管理员配置和提供。
【讨论】:
我不完全确定我的答案在您编辑后是否适用。似乎现在单独使用 COL1 LIKE 'abc' 就可以解决问题了。以上是关于从 Netezza 中的字符串获取完全匹配的主要内容,如果未能解决你的问题,请参考以下文章
NZSQL/代码 - Netezza NZ-SQL 中的 LEFT() 函数
使用 Python 从 Netezza 中的表列表中获取记录计数