2010-06-22 6 views
1

Я пытаюсь просмотреть lengthiest сообщения на StackOverflow с помощью:выбрать 10 лучших самых длинных сообщений

https://data.stackexchange.com/stackoverflow/query/new

Я делаю:

select max(body) from posts;​ 

и возвращает:

You'd be looking to static link (as opposed to dynamically link) 

I'm not sure how many of the MS redistributables statically link in. 
+0

'max' возвращает последний в алфавитном порядке. [в настоящее время он возвращается] (https://data.stackexchange.com/stackoverflow/query/edit/716156): «[π (pi) - математическая константа] (https://stackoverflow.com/tags/pi/ info) ... " –

ответ

3

max функция возвращает максимальное значение выражение. Что (я думаю), вы хотите, это комбинация top и len(body).

select top 10 len(body), Id as [Post Link] 
from posts 
order by len(body) desc 
+0

bill ты мужчина. неудивительно, что они называют вас ящерицей –

2

Как насчет чего-то вроде

select top 10 len(body) from posts order by len(body) desc​ 
3
select top 10 body from posts order by len(body) desc; 
1
Select Top 10 Title, Len(Body) As BodyLength 
From Posts 
Order By Len(Body) Desc 
1

Похоже, что вы хотите что-то вроде:

выбрать топ-10 тела от должностей порядка Лен (тела) по алфавиту

2

макс (корпус) Doesnt возвращают длинное сообщение, но последнее сообщение если вы сортировать в алфавитном порядке. в нашем случае начинается с

Вы бы смотреть ...

2

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 
Смежные вопросы