我想获取变量中两个表中记录数的总和。以下是代码:
declare v_sum int default 0;
declare v_count2 int default 0;
select count(*) into v_sum
from table1;
select count(*) into v_count2
from table2;
set v_sum = v_sum + v_count2;
有没有办法在不创建变量的情况下直接选择和添加 table2 计数v_count2
v_sum
。
你不需要两个变量。一种方法是组合两个集合,然后执行COUNT
:
SELECT COUNT(*)
INTO v_sum
FROM (SELECT 1 AS c
FROM table1
UNION ALL
SELECT 1
FROM table2) AS sub
编辑:
SELECT SUM(c)
INTO v_sum
FROM (SELECT COUNT(*) AS c
FROM table1
UNION ALL
SELECT COUNT(*)
FROM table2) AS sub
您可以直接使用查询,例如:
SET v_sum = v_sum + (SELECT COUNT(*) FROM table2);
避免变量的一种方法可能是:
select v_sum + count(*) into v_sum
from table2;