检查表列,如果值存在则插入



我有两个表,它们都有一个列值,但有些表丢失了。我想比较表2,如果表1中存在1,则插入1;如果表1不存在,则插入0。我是一个新手,所以希望能在这方面得到一些帮助。

表1:

custid  name   lastname  acc_exists
123456  eric   john
54658   david  peter

表2:

custid  name   order
54658   david  kl6545
65282   matt   pl5865

SQL:

INSERT INTO t1(acc_exists)  
SELECT UPPER(t1.custid)
FROM dbo.customer_accounts T1
LEFT OUTER JOIN dbo.customer_details t2
ON UPPER(t1.custid) = UPPER(t2.custid)

INSERT语句将行添加到表中。如果需要更新现有行的列值,则需要UPDATE语句。如果">customer_accounts";表中没有">acc_exists";字段,您需要首先更改表以添加该字段:

ALTER TABLE customer_accounts ADD acc_exists2 INT;

然后,通过左键连接两个表并指定:来更新该字段的值

  • 0customer_details";表的值为NULL
  • 1,否则

如果您想在联接中忽略区分大小写,您可以使用collate Latin1_General_CI_AS:在ON子句中强制转换排序规则

UPDATE customer_accounts
SET acc_exists = CASE WHEN d.custid IS NULL THEN 0 ELSE 1 END
FROM      customer_accounts a 
LEFT JOIN customer_details d
ON a.custid collate Latin1_General_CI_AS = d.custid collate Latin1_General_CI_AS;

请在此处查看演示。

注意:我假设字段">custid";唯一标识单个客户。

相关内容

  • 没有找到相关文章

最新更新