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的主要内容,如果未能解决你的问题,请参考以下文章