SELECT * FROM table WHERE datecolumn = (SELECT max (datecolumn) FROM table);
SELECT TOP 1 * FROM table ORDER BY datecolumn DESC;
Эти запросы возвращают разницу в стоимости. из sql server выполните первый запрос. подпроцесс будет запускаться первым и сканировать кортежи в таблице и получить максимальный стол даты , после чего внешний запрос сканирует таблицу и ищет datcolumn = ..... таким образом, это не эффективность.
второй запрос более эффективен, потому что один раз сканирование кортежей таблицы происходит один раз.
для примечания: если датаканал является первичным ключом или столбцом индекса, это не является существенной разницей обоих запросов. но если этот столбец не является индексом и первичным ключом, он может значительно разниться в стоимости
Они могут производить разные результаты. Верхний пример может возвращать более одной строки (в основном каждая строка соответствует самой большой дате). Нижний запрос возвращает только 1 строку (и ничего не делает о датах привязки) – Sparky