sql - 如果内部连接值为空,那么我想执行一个查询,如果它没有使用存储过程执行另一个查询
问题描述
如果内连接值为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,则执行上面的查询
解决方案
试试这个,我希望这对你有用
解决方案 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'
推荐阅读
- c# - 在 foreach 循环中以编程方式擦除 SQL 中的一行?
- python - 当要写入的文本中有逗号时,管道分隔的 csv 文件看起来很奇怪
- javascript - 通过 Symfony API 使用数组发布 JSON 对象
- excel - 如何将 MS Word 中的问题转换为 Excel 单元格?
- javascript - JavaScript - 如何在 foreach 循环中的迭代之间插入暂停?
- bash - Bash Script-如何比较两个文件并打印出丢失的数据
- javascript - MomentJS - 从 hh:mm 到时刻的时刻时区
- c++ - try 块中返回是否有隐藏的兔子洞?
- phpstorm - 如何在 Windows 10 上打开端口 9000 以使 Xdebug 正常工作?
- php - Ratchet PHP WebSocket:连接后立即断开连接