PDA

View Full Version : مشکل در کاربرد عبارت TOP در SELECT



asif1358
سه شنبه 09 فروردین 1390, 22:25 عصر
سلام خدمت اساتید
من جدولی دارم که شامل یک فیلد عددی است؛ میخواهم به طور مثال ده مورد را که بیشترین مقدار دارد با عبارت SELECT انتخاب کنم؛ درست کار نمیکنه:


SELECT TOP 10 Age, PersonID, FName FROM Persons ORDER BY Age DESC

Rejnev
چهارشنبه 10 فروردین 1390, 16:23 عصر
چه مشکلی پیش میاد مگه؟
به نظر کدی که نوشتید مشکلی نداره

pezhvakco
چهارشنبه 10 فروردین 1390, 18:02 عصر
ده مورد را که بیشترین مقدار دارد با عبارت SELECT انتخاب کنم
درست متوجه نشدم .
10 مورد از کدام ستون و با چه شرایطی : بیش ترین مقدار از نظر تعداد تکرار، بیش ترین مقدار از نظر داده درون اون یا ...
تکراری بودن ،
این کدی که شما نوشتین برای نمایش 10 ردیفی است که مقدار داده ستون Age آن ها بیش ترین است .

asif1358
چهارشنبه 10 فروردین 1390, 22:46 عصر
سلام
این کوئری درست کار نمی کنه؛ یعنی ده فردی که بیشترین سن را داشته باشد بر نمی گردانه؛ به طور مثال 35 45 50 و ... را نشان می دهد در حالی که میدانم یه فردی 60 ساله هم هست

من که نفهمیدم مشکل چیه:گیج:

Rejnev
چهارشنبه 10 فروردین 1390, 22:55 عصر
احتمالا نوع فیلد Age رشته است.
به همین منظور مثلا عدد "9" از عدد "89" بزرگتر میشه!

محمد سلیم آبادی
پنج شنبه 11 فروردین 1390, 18:40 عصر
اگر حدس دوستمون که در پست قبلی بیان شد درست باشه کافیه در آخرین ماده ی کوئریتان این تغییر را اعمال کنید:
ORDER BY age * 1 DESC

asif1358
پنج شنبه 11 فروردین 1390, 20:09 عصر
سلام
ضمن تشکر از توجه شما، فیلد عددی است! من که عرض کردم.

اگر ممکن است دوستان کمی در مورد TOP توضیح بدند؛ با ذکر مثال.
ممنوووووووووووووووون

محمد سلیم آبادی
پنج شنبه 11 فروردین 1390, 20:45 عصر
سلام
ضمن تشکر از توجه شما، فیلد عددی است! من که عرض کردم.

اگر ممکن است دوستان کمی در مورد TOP توضیح بدند؛ با ذکر مثال.
ممنوووووووووووووووون
مطمئن هستین که کوئری که در حال استفاده کردن ازش هستین دقیقا همونی هست که در پست اول ارسال کردین؟
یعنی شما یک جدولی به شکل زیر دارین:

CREATE TABLE Sample
(age INT NOT NULL,
parent_id INT,
f_name VARCHAR(50));

که مثلا چند سطر زیر در اون وجود داره:

INSERT INTO Sample (age) VALUES(60),(30),(20);

و SELECT زیر اطلاعات فردی که بزرگترین سن رو داره رو بر نمیگردونه؟

SELECT TOP 1 * FROM Sample ORDER BY age DESC;

Rejnev
پنج شنبه 11 فروردین 1390, 20:47 عصر
لطفا در صورت امکان دیتابیس رو قرار بدید. و یا تصویری از کوئری اجرا شده همراه با نتیجه
پ ن:
بجای این که در پست 1 بنویسید جدولم شامل یک فیلد است، بگویید دارای فیلدی عددی به نام age و فیلدهای personID,... است تا ذهن خواننده روی یک جدول دارای تنها یک ستون نرود.
با تشکر