如何从不同表中选择两列之一作为单列

问题描述 投票:0回答:1

我有两张桌子。

tbl地址

主键 地址类型 地址
1234 LOC 123 ST.
1234 马尔 456 TER

tbl帐户信息

主键 地址
1234 123 ST.
5678 XYZ 大道

我想要的是,如果帐户在 tblAddress 中有邮寄地址(MAL),则可以选择该地址 地址,如果没有选择帐户地址。

我尝试使用基于addresstype列和accountinfo地址列的or语句,但似乎总是选择帐户信息地址,即使另一个可用。

sql-server sql-server-2008
1个回答
0
投票

您需要在 PrimaryKey 上连接这些表,并在字段列表中使用 CASE WHEN 语法。像这样的东西:

SELECT CASE WHEN a.AddressType = 'MAL' THEN i.Address ELSE a.Address END as final_address
FROM tblAddress a
LEFT JOIN tblAccountInfo i on a.PrimaryKey = i.PrimaryKey
© www.soinside.com 2019 - 2024. All rights reserved.