首页 > 解决方案 > 在 SQL Server 中创建新列并在新列中仅查找匹配数据是否有效?

问题描述

我想知道以下过程是否有效,或者是否有更好的方法来解决这个问题:

表由 4 个相关列组成:

我想连接这些列以创建 '1984-03-19 John Doe' 作为新列。然后我想以这种格式获取一个值列表(有一个包含 DOB、First、Last name 的 .csv 文件),并且只有在匹配时才从表中提取Id 。

该表有数百万行,所以我想知道是否有更有效的方法来编写这个查询。

这是针对临时请求的。

标签: sqlsql-server

解决方案


您应该将 CSV 文件加载到表中。我们称之为 CSV。

我们将调用您的原始表t

然后你想要一个简单的JOIN

select t.id
from csv join
     t
     on t.firstname = csv.firstname and
        t.lastname = csv.lastname and
        t.dob = csv.dob;

瞧!完毕。没有串联。

t(firstname, lastname, dob)出于性能考虑,您需要以任何顺序对列进行索引。


推荐阅读