外地客户如不方便将要进行数据恢复的储存设备(如硬盘,U盘等)送到我们数据恢复中心,可以通过快递至我数据恢复中心。

SQL Server如何使用SELECT语句指定排序方向

数据排序不限于升序排序(从A到Z) 。这只是默认的排序顺序,还可以使用ORDER BY子句以降序(从Z到A)顺序排序。为了进行降序排序,必须指定DESC关键字。
下面的例子按价格以降序排序产品(最贵的排在最前面) :

输入:

SELECT prod_id,prod_price,prod_name
FROM products
ORDER BY prod_price DESC;

输出:

prod_id prod_price prod_name
JP2000
SAFE
JP1000
ANV03
DTNTR
TNT2
FB
ANV02
0L1
ANV01
SLING
FU1
FC
TNT1
55.00
50.00
35.00
14.99
13.00
10.00
10.00
9.99
8.99
5.99
4.49
3.42
2.50
2.50
JetPack 2000
Safe
JetPack 1000
2 ton anvil
Detonator
TNT (5 sticks)
Bird seed
1ton anvil
0il can
.5 ton anvil
Sling
Fuses
Carrots
TNT (1 stick)

但是,如果打算用多个列排序怎么办?下面的例子以降序排序产品(最贵的在最前面) ,然后再对产品名排序:

输入:

SELECT prod_id,prod_price,prod_ name
FROM products
ORDER BY prod_price DESC,prod_name;

输出:

prod_id prod_price prod_name
JP2000
SAFE
JP1000
ANV03
DTNTR
TNT2
FB
ANV02
0L1
ANV01
SLING
FU1
FC
TNT1
55.00
50.00
35.00
14.99
13.00
10.00
10.00
9.99
8.99
5.99
4.49
3.42
2.50
2.50
JetPack 2000
Safe
JetPack 1000
2 ton anvil
Detonator
TNT (5 sticks)
Bird seed
1ton anvil
0il can
.5 ton anvil
Sling
Fuses
Carrots
TNT (1 stick)

DESC关键字只应用到直接位于其前面的列名。在上例中,只对prod_price列指定DESC,对prod_name列不指定。因此,prod_price列以降序排序,而prod_name列(在每个价格内)仍然按标准的升序排序。

在多个列上降序排序 如果想在多个列上进行降序排序, 必须对每个列指定DESC关键字。

与DESC相反的关键字是ASC (ASCENDING), 在升序排序时可以指定它。但实际上,ASC没有多大用处,因为升序是默认的(如果既不指定ASC也不指定DESC,则假定为ASC)。
区分大小写和排序顺序 在对文本性的数据进行排序时,A与a相同吗?a位于B之前还是位于Z之后?这些问题不是理论问题,其答案取决于数据库如何设置。
在字典 (dictionary) 排序顺序中, A被视为与a相同, 这是MySQL(和大多数数据库管理系统)的默认行为。但是,许多数据库管理员能够在需要时改变这种行为(如果你的数据库包含大量外语字符,可能必须这样做) 。
这里,关键的问题是,如果确实需要改变这种排序顺序,用简单的ORDER BY子句做不到。你必须请求数据库管理员的帮助。

使用ORDER BY和LIMIT的组合,能够找出一个列中最高或最低的值。下面的例子演示如何找出最昂贵物品的值:

输入:

SELECT prod_price
FROM products
ORDER BY prod_price DESC
LIMIT 1;

输出:

prod_price
55.00

prod_price DESC保证行是按照由最昂贵到最便宜检索的,而LIMIT 1告诉MySQL仅返回一行。

ORDER BY子句的位置 在给出ORDER BY子句时,应该保证它位于FROM子句之后。如果使用LIMIT,它必须位于ORDER BY之后。使用子句的次序不对将产生错误消息。

转载请注明:成都千喜数据恢复中心 » SQL Server如何使用SELECT语句指定排序方向

喜欢 (15)or分享 (0)

您必须 登录 才能发表评论!