با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، و کاربرانی که دوره آموزش SQLite را دنبال می کنند. تاکنون چگونگی استخراج رکوردها را از جداول دیتابیس با استفاده از دستور SELECT و تعریف ساختارهای شرطی متفاوتی را با استفاده از دستور WHERE و عملگرهایی نظیر LIKE ، GLOB و… را ارائه کردیم، در حالت ساده رکوردها بدون ترتیب خاصی در نتیجه ی Query بازگردانده می شوند، در اغلب موارد شما نیاز دارید که رکوردها بر اساس یکی از ستون های جدول بر اساس صعودی یا نزولی مرتب شده و در نتیجه بازگردانده شوند، که در این صورت می توانید از دستور ORDER BY در SQLite استفاده کنید.
در این آموزش شما را با سینتکس دستور ORDER BY در SQLite و مثال هایی از آن اشنا خواهیم کرد.
سینتکس استفاده از ORDER BY به صورت زیر خواهد بود :
1 2 3 4 | SELECT column-list FROM table_name [WHERE condition] [ORDER BY column1, column2, .. columnN] [ASC | DESC]; |
شما می توانید بیش از یک ستون را در ساختار ORDER BY تعریف کنید.
مثال
جدول COMPANY را با رکوردهای زیر در نظر بگیرید :
1 2 3 4 5 6 7 8 9 | ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0 |
در مثال زیر نتایج به صورت نزولی بر اساس فیلد SALARY مرتب می شوند :
1 | sqlite> SELECT * FROM COMPANY ORDER BY SALARY ASC; |
نتیجه ی کد فوق به صورت زیر خواهد بود :
1 2 3 4 5 6 7 8 9 | ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 7 James 24 Houston 10000.0 2 Allen 25 Texas 15000.0 1 Paul 32 California 20000.0 3 Teddy 23 Norway 20000.0 6 Kim 22 South-Hall 45000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 |
در مثال زیر نتایج به صورت نزولی بر اساس فیلدهای SALARY و NAME مرتب می شوند :
1 | sqlite> SELECT * FROM COMPANY ORDER BY NAME, SALARY ASC; |
نتیجه ی کد فوق به صورت زیر خواهد بود :
1 2 3 4 5 6 7 8 9 | ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 2 Allen 25 Texas 15000.0 5 David 27 Texas 85000.0 7 James 24 Houston 10000.0 6 Kim 22 South-Hall 45000.0 4 Mark 25 Rich-Mond 65000.0 1 Paul 32 California 20000.0 3 Teddy 23 Norway 20000.0 |
در مثال زیر نتایج به صورت نزولی بر اساس فیلد NAME مرتب می شوند :
1 | sqlite> SELECT * FROM COMPANY ORDER BY NAME DESC; |
نتیجه ی کد فوق به صورت زیر خواهد بود :
1 2 3 4 5 6 7 8 9 | ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 3 Teddy 23 Norway 20000.0 1 Paul 32 California 20000.0 4 Mark 25 Rich-Mond 65000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0 5 David 27 Texas 85000.0 2 Allen 25 Texas 15000.0 |
در عمل وقتی که از سیستم مدیریت دیتایس SQLite در برنامه های مختلف خود استفاده می کنید، غالبا نیاز دارید که نتایج query ها را بر اساس یک یا چند فیلد که به صورت صعودی یا نزولی مرتب شده باشند در یافت کنید، در چنین مواردی ، استفاده از دستور ORDER BY در SQLite بهترین گزینه خواهد بود.