Sous-requêtes retournant un résultat scalaire
Les Sous-requêtes utilisées dans les prédicats de recherche, à l’exception des prédicats d’existence et de quantité, doivent retourner un résultat scalaire, c’est-à-dire pas plus d’une colonne d’une seule ligne sélectionnée ou une valeur agrégée, sinon une erreur d’exécution (“Multiple rows in a singleton select…”) se produira.
Note
|
Bien que Firebird signale une erreur réelle, le message peut être légèrement trompeur.“singleton SELECT” est une requête qui ne doit pas retourner plus d’une chaîne.Cependant, |
SELECT
e.first_name,
e.last_name,
(SELECT
sh.new_salary
FROM
salary_history sh
WHERE
sh.emp_no = e.emp_no
ORDER BY sh.change_date DESC ROWS 1) AS last_salary
FROM
employee e
WHERE
pour obtenir la valeur du salaire maximum de l’employé et filtrer par celle-ci.SELECT
e.first_name,
e.last_name,
e.salary
FROM
employee e
WHERE
e.salary = (SELECT
MAX(ie.salary)
FROM
employee ie)