有没有更简单的方法来重写PostgreSQL的SQL Server查询?

时间:2016-05-24 12:21:02

标签: sql sql-server postgresql

特别是,我正在寻找一种方法来更轻松地重写我的查询,而不必每次都使用“更低”的功能。

在SQL Server中,我的查询如下所示:

WHERE (FIELD LIKE '%Foot%Locker%' or FIELD LIKE '%Foot%Action%' or FIELD LIKE '%Champs%')

在PostgreSQL中,我必须重写每个查询(如果我希望我的查询同时捕获Foot Locker AND foot locker和任何其他大写驱动的排列):

WHERE (lower(FIELD) LIKE lower('%foot%locker%') or lower(FIELD) LIKE lower('%foot%action%') or lower(FIELD) LIKE lower('%champs%')

这当然非常烦人。我必须重写100个查询。有一个简单的解决方法吗?

1 个答案:

答案 0 :(得分:4)

Postgres正是您正在寻找的ilike

  

可以使用关键字ILIKE代替LIKE来进行匹配   根据活动区域设置不区分大小写。这不在   SQL标准,但是PostgreSQL扩展。

(记录here。)

所以,你可以这样做:

WHERE (field ILIKE '%foot%locker%' or FIELD ILIKE '%foot%action%' or FIELD) ILIKE '%champs%'

或者,如果您愿意:

WHERE lower(field) ~ '(foot.*locker)|(foot.*action)|champ'