sql - 在 SQL Server 中创建新列并在新列中仅查找匹配数据是否有效?
问题描述
我想知道以下过程是否有效,或者是否有更好的方法来解决这个问题:
表由 4 个相关列组成:
- ID
- 出生日期 (1984-03-19)
- 名字(约翰)
- 姓氏(Doe)
我想连接这些列以创建 '1984-03-19 John Doe' 作为新列。然后我想以这种格式获取一个值列表(有一个包含 DOB、First、Last name 的 .csv 文件),并且只有在匹配时才从表中提取Id 。
该表有数百万行,所以我想知道是否有更有效的方法来编写这个查询。
这是针对临时请求的。
解决方案
您应该将 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)
出于性能考虑,您需要以任何顺序对列进行索引。
推荐阅读
- android - 如何从 Firebase 电子邮件身份验证中获取电子邮件的用户 ID
- c# - 有什么方法可以访问抽象类的派生类类型
- regex - Qualtrics:我有一个 2x2 矩阵表,我正在尝试生成自定义验证
- r - 基于平行向量的滤波向量
- c++ - 从继承层次结构中迭代对象容器,同时隐藏指针
- html - Auto size div and right aligned div in same div container
- c# - 启动类 IsInRole .net 核心
- mysql - SQL 查询 NOT IN 来自 3 个有条件的表
- ibm-cloud - 如何使用 Rest API 部署vyatta
- kibana - Kibana 可视化 - 自定义图例标签