将一个表的名称与另一个表的列表进行比较

时间:2013-10-09 10:10:30

标签: sql sql-server string-comparison

我有一个公司对的数据集,想要检查一个合伙人名称或所列公司对的合伙人姓名是否包含在另一个公司的公司列表中。

如果公司名称列表中包含一个或两个合作伙伴,则值1应插入公司对列表的“EarlyStage”列中,否则为0。

公司名称列表如下所示

Partner

1View
1-Net
3T
A&L

公司对列表如下所示,包括带有新插入值的“EarlyStage”列

Partner11  |  Partner22  |  EarlyStage

Unisys     |  Campu      |      0
A&L        |  Silva      |      1
Jet        |  3T         |      1
1-Net      |  1View      |      1

“EarlyStage”的值在第一行应为0,因为合作伙伴Unisys和Campu都不包含在公司名称列表中。 在其他行中,“EarlyStage”应取值1,因为partner11(cp。第2行)或partner22(cp。第3行)或两者(cp。第3行)都包含在公司名称列表中。

我真的很感激有任何帮助来解决这个问题。

非常感谢你。

2 个答案:

答案 0 :(得分:1)

update Pairs
set EarlyStage = 1 
from Pairs
    inner join Companies on Companies.Company in (Pairs.Partner11, Pairs.Partner22)

答案 1 :(得分:0)

试试这个:

INSERT INTO EarlyStage
SELECT
CASE WHEN Partner11 in (select name from Partner) 
THEN 1
WHEN Partner22 in (select name from Partner)
THEN 1
ELSE 0
END