私は以下のようなクエリ構造を持っています.CASEステートメントを使用するか、他の方法で選択クエリを1つとして記述して、値に基づいて適切な変数に値が挿入されるようにする方法があるかどうか疑問に思っています.
DECLARE passes INT;
DECLARE fails INT;
..
SELECT count(score)
INTO passes
FROM scores
WHERE score >= 40;
SELECT count(score)
INTO fails
FROM scores
WHERE score < 40;
Murdoch はこの問題に対する適切な解決策を思いつきました。私はそれに 1 つの変更を加えて、それぞれの変数にそれぞれの値を入れるだけで済みました。
SELECT *
INTO passes, fails
FROM (SELECT SUM(CASE
WHEN score >= 40 THEN 1
ELSE 0
END) AS _passes,
SUM(CASE
WHEN score < 40 THEN 1
ELSE 0
END) AS _fails
FROM scores) AS x;