SQL选择语法来比较sql表的值列表

时间:2016-11-07 18:00:34

标签: sql-server sql-server-2008

我有3列的excel。 column1 lastname,column2 firstname,column3 fathername。 我从excel导出这些数据并制作一个这样的数据列表...... (马利,鲍勃,乔治); (杰克逊,迈克尔,保罗); (Connor,Sarah,Cathrine)等。

在SQL(2008 r2)中,我有一个包含这3列(以及更多......)的表。 我想搜索我的表是否有从excel导出的人 我找到了一个解决方案,最后重复选择和联合所有,但我有的行是在sql表中导出500 excel对7​​0000所以我认为这不是重复联合的最佳方式。 所以我的问题是,如果有一种语法不需要一次又一次地重复     选择,而不是使用像

这样的东西
select lastname,firstname,fathername from table where ....

(马利,鲍勃,乔治); (杰克逊,迈克尔,保罗); (Connor,Sarah,Cathrine)

非常感谢你的时间, 大力神

1 个答案:

答案 0 :(得分:0)

使用IN ...

....
WHERE 
   lastname IN ('Marley','Jackson','Connor') 
   AND firstname ('Bob','Michael','Sarah')
....

然而,这可能会返回意外结果...因为它不会关联配对。 I.E.如果有人被命名为“Sarah Marley”,他们将被退回。您可能希望将名称连接成“全名”或使用其他键字段。最后,更好的方法是将您的FirstName,MiddleName和LastName加载到#TempTable或@TableVariable,并将INNER JOIN加载到您的查询中,或使用WHERE EXISTS