MAX является aggregate function. Когда вы работаете с типом данных числового столбца, он вернет самое высокое значение. Для столбцов символов MAX находит наибольшее значение в последовательности сортировки. В любом случае, он вернет только одно значение для каждой группы - если группы не указаны, она вернет только одно значение.
Это оставляет вас с нуждаясь, чтобы получить длину тела, так что вы можете заказать результаты - у вас есть два варианта:
- LEN возвращает количество символов, а не число байтов, из заданное строковое выражение, за исключением конечных пробелов.
- DATALENGTH возвращает количество байтов, используемых для представления любого выражения. DATALENGTH особенно полезен для типов данных varchar, varbinary, text, image, nvarchar и ntext, поскольку эти типы данных могут хранить данные переменной длины. Значение DULALENGTH NULL равно NULL.
Так что вы хотели бы использовать следующий запрос:
SELECT TOP 10 p.body
FROM POSTS p
ORDER BY DATALENGTH(p.body) DESC
'max' возвращает последний в алфавитном порядке. [в настоящее время он возвращается] (https://data.stackexchange.com/stackoverflow/query/edit/716156): «[π (pi) - математическая константа] (https://stackoverflow.com/tags/pi/ info) ... " –