サブクエリリストを使用すると、女性従業員よりも高い給与を持つすべての男性従業員が使用されます。これは正しいか?また、私はそれをINステートメントに変更する必要があります。私が試したすべてが女性の給料を返します。それはきわめて明確であるので、私は、このバージョンが好きIN文の遷移
SELECT m.*
FROM Employee m
WHERE m.Gender = 'M' AND
m.Salary > (SELECT MAX(f.Salary)
FROM Employee f
WHERE f.Gender = 'F'
);
:
SELECT FirstName, LastName, Salary
FROM Employee
WHERE Salary > ALL
(Select Salary FROM Employee
WHERE Gender = 'F')
私はこれが正しいとは思わない。クエリは「女性の従業員よりも給与の高いすべての従業員」になるはずです。私は、出力を男性に限定するために、メインのクエリにwhere句を追加するべきだと思います。 "IN"への移行方法について教えてください。 – mrtig
私は基本的に、ALLの代わりにINを使うだけで同じステートメントが必要です。 –
これを 'IN'に変更することは賢明な方法ではないと思いますが、' NOT EXISTS'に変更することができます。それはあなたのニーズを満たすでしょうか? –