Что происходит, когда таблица очень заполнена, и вы можете указать, какую строку из вашей первой вершины получить, например, имя? В этом случае запрос OMG Ponies вернет неправильный ответ, если вы просто измените предложение ORDER BY. Его запрос также стоит примерно на 8% больше процессора, чем эта модификация (хотя он имеет равные чтения)
SELECT TOP 1 *
FROM (
SELECT TOP 1 ID,Name
FROM TableName
ORDER BY Name
UNION ALL
SELECT 0,''
) X
ORDER BY ID DESC
Разница в том, что внутренний запрос также имеет TOP 1, и , который TOP 1 может быть указан там (как показано).
Просто для удовольствия, это еще один способ сделать это, который выполняет очень близко к вышеупомянутому запросу (от -15мс до + 30мс). Хотя это и сложнее, чем необходимо для такого простого запроса, он демонстрирует методику, которую я не вижу, чтобы другие люди SQL часто использовали.
SELECT
ID = Coalesce(T.ID, 0),
Name = Coalesce(T.Name, '')
FROM
(SELECT 1) X (Num)
LEFT JOIN (
SELECT TOP 1 ID, Name
FROM TableName
ORDER BY ID DESC
) T ON 1 = 1 -- effective cross join but does not limit rows in the first table