首页 > 解决方案 > 如果内部连接值为空,那么我想执行一个查询,如果它没有使用存储过程执行另一个查询

问题描述

如果内连接值为null,那么我想执行一个查询;如果不是,则使用存储过程执行另一个查询

SELECT 
    City.City, Country.Country_Name, Branch_Master.Br_Code 
FROM
    Branch_Master 
INNER JOIN
    Country ON Country.Country_ID = Branch_Master.Country_ID  
INNER JOIN
    City ON City.CityCode = Branch_Master.CityCode 
WHERE
    Branch_Master. DeleteFlag = '1'

如果Branch_Master.Country_ID为空,那么我想执行一个查询

select * from Branch_Master

如果不为null,则执行上面的查询

标签: sqlsql-serverstored-procedures

解决方案


试试这个,我希望这对你有用

解决方案 1

if Exists(Select 1 from Branch_Master bm where bm.Country_ID IS NOT NULL )
BEGIN
Select City.City, Country.Country_Name,Branch_Master.Br_Code 
from Branch_Master 
inner join Country on Country.Country_ID=Branch_Master.Country_ID  
inner join City on City.CityCode=Branch_Master.CityCode 
where  Branch_Master. DeleteFlag='1'
END
ELSE
BEGIN
 select * from Branch_Master bm
END

解决方案 2 您也可以使用左连接来获得所需的数据。

Select ISNULL(City.City,'--') AS City, 
ISNULL(Country.Country_Name,'--') AS Country_Name,
ISNULL(Branch_Master.Br_Code,'--') AS Br_Code 
from Branch_Master 
left join Country on Country.Country_ID=Branch_Master.Country_ID  
left join City on City.CityCode=Branch_Master.CityCode 
where  Branch_Master. DeleteFlag='1'

推荐阅读