Из набора данных character, в котором есть столбец имени, я хочу запросить два имени с самыми короткими и самыми длинными именами, а также их соответствующие длины, и когда существует более одного наименьшего или самого большого имени, Я выбираю тот, который идет первым в алфавитном порядке.
С помощью этого запроса я получаю все самые короткие и самые длинные имена (A)
SELECT
name, LENGTH(name) AS LEN
FROM
character
WHERE
length(name) = (SELECT MAX(LENGTH(name)) FROM character)
OR length(name) = (SELECT MIN(LENGTH(name)) FROM character)
С этим я получаю все самые короткие имена, кроме первого в алфавитном порядке (B).
SELECT
name, LENGTH(name) AS LEN
FROM
character
WHERE
length(name) = (SELECT MIN(LENGTH(name)) FROM character)
ORDER BY
name DESC
LIMIT 10 OFFSET 2;
Когда я пытаюсь удалить B из A
A EXCEPT B
Я бы ожидал сохранить первое кратчайшее имя, но оно не появляется.