Скажем, таблицы Employee and Shippers имеют следующие данные.Как получить данные в том же порядке, что и подзапрос?
EmployeeID Name
1 Davolio
2 Fuller
3 Leverling
4 Peacock
5 Buchanan
6 Suyama
7 King
8 Callahan
9 Dodsworth
10 West
ShipperID ShipperName
1 Speedy Express
2 United Package
3 Federal Shipping
Следующий запрос возвращает ShipperID в порядке убывания.
select ShipperID from Shippers order by ShipperID desc;
Теперь я хочу, чтобы получить имена из таблицы Employee в том же порядке, ShipperID являются извлеченной (3,2,1
). Мой ожидаемый результат: Leverling, Fuller, Davolio
.
select Name from Employee where EmployeeID in (select ShipperID from Shippers order by ShipperID desc)
Вышеуказанный запрос не возвращает данные, как я ожидаю. Как это исправить?
ОБНОВЛЕНИЕ: Речь идет не о заказе записей в порядке возрастания или убывания. Это всего лишь пример, который я опубликовал здесь. Чтобы сделать это более понятным, предположим, что подзапрос возвращает ShipperID как 2,3,1
. Теперь я хочу, чтобы получить записи из таблицы Employee, как Fuller, Leverling, Davolio
Я удивлен, что запрос даже работает. Зачем вам «заказывать»? Вы только хотите увидеть, присутствует ли «EmployeeID», порядок не имеет значения. Если вы хотите, чтобы ваши результаты были заказаны, вы должны заказать свой внешний запрос. – HoneyBadger