0

下面的查询我用来获取数据。它正在提供数据。但我想使用DxCto sercah 所以它应该提供所有与 dxc 相关的数据。

当前查询:

select count(*) 
from enterprise_1.contacts_master 
where contact_data::json->>'Company' SIMILAR TO ('%(DXC|dxc)%')

o/p: 2

预期查询

select count(*) 
from enterprise_1.contacts_master 
where contact_data::json->>'Company' SIMILAR TO ('%(DxC)%')

当前 o/p: 0
预期 o/p: 2

我不想用ILike

4

1 回答 1

2

如果您想以不区分大小写的方式进行搜索,那么

where contact_data::json->>'Company' ILIKE '%DxC%'

正是您正在寻找的。

由于 ILIKE 不区分大小写,因此无需提供不同版本的子字符串。以上将匹配公司字符串中的 、dxc或任何地方。DXCdXcDxc

如果您确实想使用(不区分大小写)正则表达式,您可以使用~*运算符

where contact_data::json->>'Company' ~* 'DxC'

~*基于正则表达式以不区分大小写的方式进行比较。以上搜索'DxC'忽略大写/小写的公司字符串中任何位置的子字符串。

于 2019-10-30T07:14:05.157 回答