如何联接具有空值的SQL Server表?
我写了一段代码来计算一个特定账号上注册了多少个车牌。它还提供了该车辆的品牌 我使用4个表来获取此信息:如何联接具有空值的SQL Server表?,sql,sql-server,join,inner-join,Sql,Sql Server,Join,Inner Join,我写了一段代码来计算一个特定账号上注册了多少个车牌。它还提供了该车辆的品牌 我使用4个表来获取此信息: 账表 板桌 VehClass表(用于说明车辆类型,如轿车、卡车等) VehicleMake表(字段为VehicleMakesID和VehicleMakeDesc 问题是,图版表格。许多条目在 VehicleMakeID字段。因此无法加入VehicleMake表以获取 车辆说明 我的代码如下: select ac.AccountNumber , p.LicPLateno , p.
select ac.AccountNumber
, p.LicPLateno
, p.LicPlateState
, p.LicPlateCountry
, vm.VehicleMakeDesc
, p.VehicleModel
, p.VehicleYear
, v.VehShortDesc
--, ISNULL(p.VehicleMakeId,'-1') VechicleMakeId --(-1 means Other)
, p.VehicleMakeId
from account ac
inner join Plate p on ac.AccountId=p.AccountId
inner join VehClass v on p.VehClassId=v.VehClassID
inner join VehicleMake vm on p.VehicleMakeId=vm.VehicleMakeId
where ac.AccountNumber= '12345678'
and p.PlateStatusId=1 --(For Active Plates only)
and p.EndDate is null --(Plates are not expired)
order by p.LicPlateNo
我得到的结果是:
ABS123 BC CA Other - NULL Cars -1
DEF345 BC CA Other - NULL Cars -1
GHI456 BC CA Other - NULL Cars -1
HIJ567 BC CA Other - NULL Cars -1
结果显示只有4个车牌,但实际上有31个车牌。这些其他车牌没有显示,因为这些其他车牌在VehicleMakeID字段中为空。因此,它们没有与VehicleMake表连接
如何获得所有31个车牌的列表,如果VehicleMakeID为空,则说明应显示为其他?使用
VehicleMake
表更改内部连接
,以获得左侧连接
:
select ac.AccountNumber
, p.LicPLateno
, p.LicPlateState
, p.LicPlateCountry
, ISNULL(vm.VehicleMakeDesc,'Other')
, p.VehicleModel
, p.VehicleYear
, v.VehShortDesc
, ISNULL(p.VehicleMakeId,'-1') VechicleMakeId --(-1 means Other)
--, p.VehicleMakeId
from account ac
inner join Plate p on ac.AccountId=p.AccountId
inner join VehClass v on p.VehClassId=v.VehClassID
left join VehicleMake vm on p.VehicleMakeId=vm.VehicleMakeId
where ac.AccountNumber= '12345678'
and p.PlateStatusId=1 --(For Active Plates only)
and p.EndDate is null --(Plates are not expired)
order by p.LicPlateNo
;
很接近了。请在select语句中保持isnull,并使用外部联接获取车牌。左联接车辆Make