我正在尝试编写一个查询,它将计算和比较两个不同数据库中两个表的行数。如果它们相等,那么记录将被插入到另一个表格中,如果通过,否则将导致“失败”。 我还没有通过谷歌搜索找到任何答案......这是我的查询不起作用:
select
case when
((select count(1) from db1.transaction) = (select count(1) from db2.transaction))
then
insert into db3.validation (test_result) values ('pass')
else
insert into db3.validation (test_result) values ('fail')
end;
答案 0 :(得分:0)
您可以通过撤消订单来执行此操作。选择insert
select
的{{1}}选择值:
insert into db3.validation(test_result)
select (case when t1.cnt1 = t2.cnt2 then 'pass' else 'fail' end)
from (select count(1) as cnt1 from db1.transaction) t1 cross join
(select count(1) as cnt2 from db2.transaction) t2;
请注意,我将子查询从case
移动到from
子句,只是因为我觉得它们更容易以这种方式阅读。如果您愿意,可以将它们保留在case
。