在 SQL 中,我们可以使用不同的函数和运算符来实现偶数连续相加。以下是其中一些 :
使用 SUM() 函数
我们可以使用 SUM() 函数对偶数进行求和。例如,以下查询计算从 2 到 10 的偶数和:
SELECT SUM(i)FROM (
SELECT 2 * i AS i
FROM (
SELECT ROW_NUMBER() OVER (ORDER BY object_id) AS RowNum
FROM sys.objects
WHERE RowNum < 10
) AS subquery
);
使用 UNION ALL 运算符
我们可以使用 UNION ALL 运算符将不同的偶数序列连接起来,然后使用 SUM() 函数求和。例如,以下查询计算从 2 到 10 和从 12 到 18 的偶数和:
SELECT SUM(i)FROM (
SELECT 2 * i AS i
FROM (
SELECT ROW_NUMBER() OVER (ORDER BY object_id) AS RowNum
FROM sys.objects
WHERE RowNum < 10
) AS subquery1
)
UNION ALL
(
SELECT 2 * i AS i
FROM (
SELECT ROW_NUMBER() OVER (ORDER BY object_id) AS RowNum
FROM sys.objects
WHERE RowNum BETWEEN 12 AND 18
) AS subquery2
);
使用 CASE 表达式
我们可以使用 CASE 表达式来判断数字是否为偶数,然后使用 SUM() 函数求和。例如,以下查询计算从 1 到 10 中的偶数和:
SELECT SUM(CASE WHEN i % 2 = 0 THEN i ELSE 0 END)FROM (
SELECT ROW_NUMBER() OVER (ORDER BY object_id) AS i
FROM sys.objects
WHERE RowNum < 10
);