我不太确定我是否可以在SQL中执行此操作,但我尝试将一个表中的列与另一个表中的列进行比较。
所以我有一个名为“PolicyList
”的表格,包含我的所有数据。
我有另一个表名“PolicyWithPayments
”,只有这一个中的某些记录。
我想比较这两个:
**PolicyList** **PolicyWithPayments** **HitRWithPay**
*PolicyNumber* *PolicyNumber* *PaidNotPaid*
1212 1212 Paid
2323 3434 NotPaid
3434 Paid
我在前两列中有数据,但我需要第三列,PaidNotPaid,在我的新表中根据PolicyWithPayments中是否存在数字来填充。
如果号码在PolicyWithPayment = "Paid"
如果该号码不在PolicyWithPayments中,但在Policy List = "NotPaid"
如果您需要任何其他信息或任何其他信息,请与我们联系。
谢谢!
谢谢哈里!我显然不知道自己在做什么......
答案 0 :(得分:1)
一种方法使用left join
:
select pl.*,
(case when pwp.PolicyNumber is not null then 'Paid' else 'NotPaid' end) as PaidNotPaid
from PolicyList pl left join
PolicyWithPayments pwp
on pwp.PolicyNumber = pl.PolicyNumber;
尽管如此,我实际上更喜欢将exists
用于此目的:
select pl.*,
(case when exists (select 1 from PolicyWithPayments pwp where pwp.PolicyNumber = pl.PolicyNumber)
then 'Paid' else 'NotPaid'
end) as PaidNotPaid
from PolicyList pl;
优点是,如果第二个表中有重复项,这不会无意中乘以行数。