SQL 中的“包含”和“不包含”方法或使用 Java 脚本 UDF

Posted

技术标签:

【中文标题】SQL 中的“包含”和“不包含”方法或使用 Java 脚本 UDF【英文标题】:"Contains" and "Not Contains" methods in SQL or by using Java script UDF 【发布时间】:2021-11-02 12:35:51 【问题描述】:

我们能否在 SQL 中使用“Contains”和“NotContains”方法,即如何检查字符串或列值是否包含在表的另一列中。

问题陈述:

    如何检查字符串“ABC”是否包含/不包含在“Column1”中 如何检查“Column1”值是否包含/不包含在“Column2”中

如果不是 SQL,我们可以使用 javascript UDF 或任何其他方式来实现吗?

【问题讨论】:

在SQL中查找NOT子句和LIKE子句。 这能回答你的问题吗? SQL SELECT WHERE field contains words 我正在寻找一个可以在case语句中使用的函数 ***.com/q/6740134 简单的SQL命令解决问题,为什么还要使用函数? 【参考方案1】:

CONTAINS:

如果 expr1 包含 expr2,则返回 true。两个表达式都必须是文本或二进制表达式。

CONTAINS( <expr1> , <expr2> )

例子:

SELECT * FROM tab WHERE (Colum1, 'ABC');
SELECT * FROM tab WHERE NOT (Colum1, 'ABC');

SELECT * FROM tab WHERE (Colum1, Column2);
SELECT * FROM tab WHERE NOT (Colum1, Column2);

值得一提的是Snowflake LIKE/ILIKE[ANY]:

SELECT *
FROM tab
WHERE Column1 LIKE ANY ('%ABC%','%XYZ%');

【讨论】:

【参考方案2】:

您可以使用Like 运算符我相信我不确定您到底在寻找什么,但下面是一个示例。更多详情:https://www.w3schools.com/sql/sql_like.asp

select column
from [table]
where column Like %ABC%

或者,如果您已经知道要在特定列中查找的值,则可以使用 in 运算符:

select column from [table] where column in ('ABC','XYZ')

这将为您提供列的行,其中值等于 ABC 或 XYZ

【讨论】:

以上是关于SQL 中的“包含”和“不包含”方法或使用 Java 脚本 UDF的主要内容,如果未能解决你的问题,请参考以下文章

SQL:选择列表中的列无效,因为它不包含在聚合函数或 GROUP BY 子句中[关闭]

SQL Server 查找包含的组

sql查询一个表不包含另一个表的数据,两种方法。

sql 如何判断表中的某个字段是不是有某个值

选择不包含任何负值或缺失值的行

SQL的视图