مرتبسازی نتایج و حذف سطرهای تکراری در SQL
مرتبسازی سطرها
برای مرتبسازی سطرهای جدول نتیجه از Clause ORDER BY استفاده کنید. این Clause اختیاری باید آخرین Clause پرسوجو باشد. نام ستون، موقعیت ستون در Clause SELECT و کلیدواژه DESC برای مرتبسازی نزولی میتوانند بهعنوان پارامتر وارد شوند.
SELECT COUNTRY, AREA
FROM COUNTRIES
ORDER BY AREA;
SELECT COUNTRY, AREA
FROM COUNTRIES
ORDER BY 2;
SELECT COUNTRY, AREA
FROM COUNTRIES
ORDER BY AREA DESC;
ORDER BY باید آخرین Clause باشد.- میتوان نام ستون یا موقعیت ستون را مشخص کرد.
DESC مرتبسازی نزولی را مشخص میکند.
صفحه PDF 18 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
مرتبسازی سطرها - ادامه
میتوان سطرهای جدول نتیجه را بر اساس مقادیر بیش از یک ستون مرتب کرد؛ کافی است فهرست ستونها در Clause ORDER BY وارد شود. ترتیب ستونها از چپ به راست، توالی مرتبسازی از کلید اصلی به کلید فرعی را مشخص میکند.
SELECT LANGUAGE, POP
FROM COUNTRIES
ORDER BY LANGUAGE;
SELECT LANGUAGE, POP
FROM COUNTRIES
ORDER BY LANGUAGE, POP DESC;
- در Clause
ORDER BY میتوان فهرست ستونها وارد کرد. - نام ستونها با ویرگول از هم جدا میشود.
- ستونها از معیار اصلی مرتبسازی به معیار فرعی فهرست میشوند.
صفحه PDF 19 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
مرتبسازی سطرها - ادامه
در نحو فعلی SELECT، Clause ORDER BY اضافه شده است. کروشهها نشان میدهند DESC اختیاری است.
SELECT collist
FROM table
ORDER BY col [ DESC ] list
-- or
ORDER BY pos [ DESC ] list
-- Examples
ORDER BY LANGUAGE DESC, COUNTRY
ORDER BY 1 DESC, 3
تمرینها
- همه ستونهای جدول
PERSONS را برای افراد اهل ایرلند نمایش دهید. 6 نفر وجود دارند. سپس آنها را به ترتیب الفبایی نمایش دهید. - همه ستونهای جدول
COUNTRIES را برای کشورهای آلمانیزبان نمایش دهید. نتیجه 4 سطر دارد. سپس بر اساس GNP مرتب کنید، بزرگترین در بالا. - کشور، شغل و نام همه ایتالیاییهای پایگاه داده را نمایش دهید و نامها را درون هر شغل مرتب کنید. نتیجه 10 سطر دارد.
امتیاز اضافه
- کدام کشور بزرگترین بودجه نظامی را دارد؟ کدام کوچکترین؟ کدام بیشترین نیرو، تانک، کشتی و هواپیما را دارد؟
صفحه PDF 20 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
حذف سطرهای تکراری
معمولاً جدولها سطر تکراری ندارند. با این حال، هنگامی که فقط زیرمجموعهای از ستونها انتخاب شود، یک پرسوجو ممکن است سطرهای تکراری تولید کند. کلیدواژه DISTINCT در Clause SELECT برای جلوگیری از نمایش سطرهای تکراری در جدول نتیجه به کار میرود.
SELECT RELIGION
FROM RELIGIONS
WHERE PERCENT = 100
ORDER BY RELIGION;
SELECT DISTINCT RELIGION
FROM RELIGIONS
WHERE PERCENT = 100
ORDER BY RELIGION;
DISTINCT بلافاصله پس از کلیدواژه SELECT نوشته میشود.DISTINCT سطرهای تکراری را حذف میکند.DISTINCT در هر پرسوجو فقط یکبار میتواند نوشته شود.
صفحه PDF 21 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
حذف سطرهای تکراری - ادامه
در نحو فعلی دستور SELECT، کلیدواژه اختیاری DISTINCT به Clause SELECT افزوده شده است.
SELECT [ DISTINCT ] collist
FROM table
ORDER BY col [ DESC ] list
-- or
ORDER BY pos [ DESC ] list
تمرینها
- فقط ستون
JOB را از جدول PERSONS نمایش دهید. 402 سطر وجود دارد؛ لازم نیست آنها را بشمارید. سپس تکراریها را حذف کنید. فقط 7 سطر باید باقی بماند. - فهرست الفبایی زبانهایی را نشان دهید که نرخ سواد در آنها کمتر از 30 درصد است. سپس تکراریها را حذف کنید. نتیجه نهایی باید 9 سطر داشته باشد.
- کشورهایی را فهرست کنید که حداقل یک دانشمند تولید کردهاند و آنها را بر اساس کشور مرتب کنید. سپس تکراریها را حذف کنید. فقط 10 سطر باید باقی بماند.
امتیاز اضافه
- فهرست الفبایی ادیانی را بسازید که کمتر از پنج درصد جمعیت کشورشان آنها را پیروی میکنند. سطرهای تکراری را حذف کنید. باید 7 سطر باقی بماند.
صفحه PDF 22 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده