sql-server - 比较 SQL Server 中的 2 个表
问题描述
我有 2 个 SQL 表,一个包含 2 列,名字和姓氏,另一个有一个名为 NAME 的列,其中包含全名。我正在尝试查找 table1 中 Last Name 列中的任何值是否可以在 table2 的 NAME 列中找到。到目前为止,我已经尝试了以下查询,但没有取得多大成功:
SELECT * FROM table1
CROSS APPLY
(SELECT * FROM table2 WHERE ('%'+table1.[Last Name]+'%' LIKE table2.NAME)) table2
解决方案
我不确定,但我认为这可行:
SELECT *
FROM table1
WHERE ISNULL((SELECT TOP(1) 1 FROM tabl2 WHERE Name LIKE '%' + table1.LastName + '%'), 0)= 1
在名字和姓氏相似的情况下,此查询的准确性可能会受到影响。您可以添加空格以获得更好的准确性:LIKE '% table1.LastName %'
.
推荐阅读
- jquery - 粘性插件在 WordPress 上不起作用?
- c++ - 了解从串口读取数据的函数
- python - 在自定义函数中使用 pandas to_datetime
- swift - 如何在 Swift 中为灵活的文本字段设置最大数值?
- java - JDBC 程序不会用 -cp 标志编译,但可以在没有 -cp 标志的情况下编译和运行
- twitter-bootstrap - 如何在 Blazor 应用程序中使用 Bootstrap Collapse
- java - 阿拉伯语文本显示问题
- c++ - 初始化 char* 并为特定数量分配内存会添加 nullptr 字符
- bash - 在 bash 中生成 0.5 到 1.5 之间的随机数
- c++ - 获得焦点后选择所有内容