当前位置:  首页>> 技术小册>> SQLite入门教程

SQLite 的 ORDER BY 子句是用来基于一个或多个列按升序或降序顺序排列数据。

语法
ORDER BY 子句的基本语法如下:

  1. SELECT column-list
  2. FROM table_name
  3. [WHERE condition]
  4. [ORDER BY column1, column2, .. columnN] [ASC | DESC];

ASC 默认值,从小到大,升序排列
DESC 从大到小,降序排列
您可以在 ORDER BY 子句中使用多个列,确保您使用的排序列在列清单中:

  1. SELECT
  2. select_list
  3. FROM
  4. table
  5. ORDER BY
  6. column_1 ASC,
  7. column_2 DESC;
  8. column_1 column_2 如果后面不指定排序规则,默认为 ASC 升序,以上语句按 column_1 升序,column_2 降序读取,等价如下语句:
  9. SELECT
  10. select_list
  11. FROM
  12. table
  13. ORDER BY
  14. column_1,
  15. column_2 DESC;

实例
假设 COMPANY 表有以下记录:

  1. ID NAME AGE ADDRESS SALARY
  2. ---------- ---------- ---------- ---------- ----------
  3. 1 Paul 32 California 20000.0
  4. 2 Allen 25 Texas 15000.0
  5. 3 Teddy 23 Norway 20000.0
  6. 4 Mark 25 Rich-Mond 65000.0
  7. 5 David 27 Texas 85000.0
  8. 6 Kim 22 South-Hall 45000.0
  9. 7 James 24 Houston 10000.0

下面是一个实例,它会将结果按 SALARY 升序排序:

  1. sqlite> SELECT * FROM COMPANY ORDER BY SALARY ASC;

这将产生以下结果:

  1. ID NAME AGE ADDRESS SALARY
  2. ---------- ---------- ---------- ---------- ----------
  3. 7 James 24 Houston 10000.0
  4. 2 Allen 25 Texas 15000.0
  5. 1 Paul 32 California 20000.0
  6. 3 Teddy 23 Norway 20000.0
  7. 6 Kim 22 South-Hall 45000.0
  8. 4 Mark 25 Rich-Mond 65000.0
  9. 5 David 27 Texas 85000.0

下面是一个实例,它会将结果按 NAME 和 SALARY 升序排序:

  1. sqlite> SELECT * FROM COMPANY ORDER BY NAME, SALARY ASC;

这将产生以下结果:

  1. ID NAME AGE ADDRESS SALARY
  2. ---------- ---------- ---------- ---------- ----------
  3. 2 Allen 25 Texas 15000.0
  4. 5 David 27 Texas 85000.0
  5. 7 James 24 Houston 10000.0
  6. 6 Kim 22 South-Hall 45000.0
  7. 4 Mark 25 Rich-Mond 65000.0
  8. 1 Paul 32 California 20000.0
  9. 3 Teddy 23 Norway 20000.0

下面是一个实例,它会将结果按 NAME 降序排序:

  1. sqlite> SELECT * FROM COMPANY ORDER BY NAME DESC;

这将产生以下结果:

  1. ID NAME AGE ADDRESS SALARY
  2. ---------- ---------- ---------- ---------- ----------
  3. 3 Teddy 23 Norway 20000.0
  4. 1 Paul 32 California 20000.0
  5. 4 Mark 25 Rich-Mond 65000.0
  6. 6 Kim 22 South-Hall 45000.0
  7. 7 James 24 Houston 10000.0
  8. 5 David 27 Texas 85000.0
  9. 2 Allen 25 Texas 15000.0

该分类下的相关小册推荐:

暂无相关推荐.