【发布时间】:2016-05-10 05:43:43
【问题描述】:
我在一个表中有 10 列(项目),在另一个表中有 10 个。
我想确定一个表中的任何一个列/项目与另一个表中的任何一个列/项目匹配的情况。
我下面的代码是针对三个项目的,效率低下 - 如何针对 10 列/项目进行修改?
CASE
WHEN (t1.[item1] = t2.[item1] OR t1.[item1] = t2.[item2] OR t1.[item1] = t2.[item3])
OR (t1.[item2] = t2.[item2] OR t1.[item2] = t2.[item1] OR t1.[item2] = t2.[item3])
OR (t1.[item3] = t2.[item3] OR t1.[item3] = t2.[item1] OR t1.[item3] = t2.[item2])
THEN 1
ELSE 0
END AS [match]
【问题讨论】:
-
请使用示例数据和所需结果编辑您的问题。
-
规范化表格,使项目字段成为自己的子字段,然后您只需匹配一个字段。
标签: sql sql-server-2008 case