goo*_*yui -4 sql-server sql-server-2012
我必须为不匹配的记录生成查询输出。
假设我有两个表 Table1 和 Table2。两个表的列都为 DrugName。没有 ID 列。只是值列。
我必须通过过滤 Table2 中的 DrugNames 来从 Table1 生成输出。假设表 1 有 1000 条记录,表 2 有 100 条记录。在应用过滤器时,我应该从 Table1 中获得 900 条记录。
select * from Table1
left join Table2 on
Table1.DrugName = Table2.DrugName
where Table2.DrugName is null
Run Code Online (Sandbox Code Playgroud)
以上语法返回不匹配的记录。
假设在 Table2.DrugName 中将是“ABCD”,而在 Table1.DrugName 中将是“XYZ ABCD”或“ABCD GHIJ”。如果 Table1.DrugName 有匹配的词“%ABCD%”,我必须过滤。
Select * from Table1
Left Join Table2
on Table1.DrugName LIKE '%' + Table2.DrugName + '%'
Run Code Online (Sandbox Code Playgroud)
...但请记住,性能可能很糟糕。您最好将较长的名称拆分为多个部分,然后加入 DrugNameElements 表。这样,您可以索引元素并快速识别匹配的元素。
归档时间: |
|
查看次数: |
2737 次 |
最近记录: |