sql - 使用 SQL 匹配表中的两列是否存在
问题描述
我试图使用洗涤剂、肥皂、盘子等关键字来匹配我的 sql 表中的两列,如果关键字在两列中找到匹配,我希望另一列说它匹配。我打算使用 if exists 但我不知道正确的语法。
示例栏:
Column1 Column2
-----------------------------------------------
detergent powder all powder detergent
dish washing liquid dish liquid for washing
hand soap hand liquid soap
解决方案
这是您问题的最简单解决方案。诀窍在于我们在语句中创建的“虚拟”列,别名为Match 。select
此列是使用case
语句计算的,以查看搜索词是否出现在两列中。请注意,我们需要将like
语句与通配符运算符一起使用%
。
create table Example (Column1 varchar(max), Column2 varchar(max));
insert into Example select 'detergent powder', 'all powder detergent';
insert into Example select 'dish washing liquid', 'dish liquid for washing' ;
insert into Example select 'hand soap', 'hand liquid soap';
declare @search varchar(20) = 'detergent';
select Column1,
Column2,
case when Column1 like '%' + @search + '%' and
Column2 like '%' + @search + '%'
then 'matched'
else 'not matched' end as [Match]
from Example;
我们还可以将Match列创建为表中的“真实”列,并update
根据相同的标准稍微修改此脚本以适应该列。
推荐阅读
- json - Postgres JSON 查询未知键
- angular - Angular 亲子交互
- scala - Spark 数据非规范化
- php - MS Graph 身份验证问题
- ms-access - MS Access 2016:设置报表的 RecordSource 以从子窗体中获取数据
- json - 从 json 填充单元格时表为空
- java - 将 Android 模块从库切换到应用程序会导致“无法解析:app@debug/compileClasspath 的依赖关系”/
- dart - 将 setState 与 StatelessWidget 一起使用
- subquery - 如何将子查询的值存储到 Hana Studio 中的变量中?
- javascript - 我想通过仅显示用户输入的最后一个元素而不是显示所有内容来将循环中的多个元素显示到文档中