سؤال

أنا أحاول عرض lengthiest المشاركات على ستاكوفيرفلوو باستخدام:

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.
هل كانت مفيدة؟

المحلول

على max الدالة ترجع قيمة الحد الأقصى من التعبير.ما (أعتقد) تريد هو مزيج من top و len(body).

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

نصائح أخرى

select top 10 body from posts order by len(body) desc;

ماذا عن شيء مثل

select top 10 len(body) from posts order by len(body) desc​

ماكس(في الجسم) لا عودة أطول رسالة ولكن آخر رسالة إذا كنت فرز أبجديا.في هذه الحالة يبدأ مع

كنت أن تبحث ...

ماكس هو دالة تجميعية.عند التعامل مع رقمية العمود نوع البيانات ، فإنه سيعود أعلى قيمة.حرف ل الأعمدة ماكس يجد أعلى قيمة في ترتيب تسلسل.وفي كلتا الحالتين سوى إرجاع قيمة واحدة لكل مجموعة - إذا لم يكن هناك جماعات محددة ، فإنه سيتم فقط إرجاع قيمة واحدة.

أن يترك لك مع الحاجة إلى الحصول على طول الجسم حتى تتمكن من ترتيب النتائج - لديك خياران:

  • لين إرجاع عدد الأحرف بدلا من عدد وحدات البايت من إعطاء سلسلة التعبير ، باستثناء فراغات زائدة.
  • DATALENGTH إرجاع عدد وحدات البايت المستخدمة لتمثيل أي تعبير.DATALENGTH مفيد خصوصا مع varchar varbinary, نص, صورة, nvarchar ، ntext أنواع البيانات لأن هذه الأنواع من البيانات يمكن تخزين البيانات متغيرة الطول.على DATALENGTH من باطل هو باطل.

إذا كنت تريد استخدام الاستعلام التالي:

  SELECT TOP 10 p.body
    FROM POSTS p
ORDER BY DATALENGTH(p.body) DESC
Select Top 10 Title, Len(Body) As BodyLength
From Posts
Order By Len(Body) Desc

يبدو أنك تريد شيئا مثل:

اختيار أفضل 10 الجسم من المشاركات النظام len(الجسم) desc

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top