【发布时间】:2011-03-02 04:36:42
【问题描述】:
在 SQL 中,我(遗憾地)经常不得不使用“LIKE”条件,因为数据库几乎违反了所有规范化规则。我现在无法改变。但这与问题无关。
此外,我经常使用WHERE something in (1,1,2,3,5,8,13,21) 之类的条件来提高我的 SQL 语句的可读性和灵活性。
有没有什么方法可以在不编写复杂的子选择的情况下将这两个东西结合起来?
我想要像WHERE something LIKE ('bla%', '%foo%', 'batz%') 这样简单的东西,而不是这样:
WHERE something LIKE 'bla%'
OR something LIKE '%foo%'
OR something LIKE 'batz%'
我在这里与 SQl Server 和 Oracle 合作,但我很想知道这在任何 RDBMS 中是否可行。
【问题讨论】:
-
你必须做并且喜欢或:AND (something LIKE '%thing%' or something LIKE '%thing%' or something LIKE '%thing%')
-
我希望我们有 Teradata 的
like any/like all:stackoverflow.com/questions/40475982/sql-like-any-vs-like-all。 (作为记录,这已在 Oracle 社区创意论坛 community.oracle.com/ideas/11592 上提出请求) -
Snowflake 也支持 LIKE ANY docs.snowflake.com/en/sql-reference/functions/like_any.html
标签: sql sql-server oracle tsql plsql