SQL Server:嵌套循环两个选择
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server:嵌套循环两个选择相关的知识,希望对你有一定的参考价值。
我有以下两个查询产生我需要的结果。现在我真正需要的最终输出我通常会在返回结果后使用python,但不幸的是只能使用SQL。
查询A:
SELECT *
FROM openquery(PROD, 'SELECT `status`, computer_name, device_type
FROM assets
WHERE (device_type="SERVER")
AND (status="ACTIVE")')
查询B:
SELECT *
FROM openquery(AppMap, 'SELECT `t1`.`uaid` AS `uaid`, `t3`.`computer_name`,
FROM ((`applications` `t1`
JOIN `app_infrastructure` `t2` ON (((`t1`.`uaid` = `t2`.`uaid`))))
JOIN `infrastructure` `t3` ON ((`t2`.`infrastructure_id` = `t3`.`infrastructure_id`)));')
我想如何处理结果:
if a computer_name is in both A and B:
final_row = ['computer_name', 1]
elseif a computer_name is in A but not B:
final_row = ['computer_name', 0]
elseif a computer_name is in B but not A:
final_row = ['computer_name', 2]
所以我的最终查询结果需要看起来像那些行,这有意义吗?
答案
在存储过程中,使用两个查询来加载表变量。
然后执行FULL OUTER JOIN查询,将computer_name
上的两个表变量连接起来,并使用CASE表达式获取每个计算机名称的final_row
值。
以上是关于SQL Server:嵌套循环两个选择的主要内容,如果未能解决你的问题,请参考以下文章