对数据进行排序

使用 SELECT 语句从表中查询数据时,不保证结果集中的行顺序。 这意味着SQL Server可以返回具有未指定行顺序的结果集。
保证结果集中的行已排序的方法是使用 ORER BY 子句。 以下是 ORDER BY 子句的语法:
SELECT
select_list
FROM
table_name
ORDER BY
[column_name | expression] [ASC | DESC ]
在上面语法中,
column_name | expression - 指定要对查询结果集进行排序的列名或表达式。 如果指定多个列,则结果集按第一列排序,然后该排序结果集按第二列排序,依此类推。 ORDER BY 子句中出现的列必须对应于选择列表中的列或 FROM 子句中指定的表中定义的列。
ASC | DESC - 使用 ASC 或 DESC 指定是否应按升序或降序对指定列中的值进行排序。 ASC 将结果从最低值排序到最高值,而 DESC 将结果集从最高值排序到最低值。如果未明确指定 ASC 或DESC ,则SQL Server将默认使用 ASC 来排序顺序。 此外,SQL Server将 NULL 视为最低值。 处理具有 ORDER BY 子句的 SELECT 语句时, ORDER BY 子句是要处理的最后一个子句。

  1. 按升序对结果集进行排序
    以下语句按名字按升序对客户列表进行排序:
    SELECT
    first_name,
    last_name
    FROM
    sales.customers
    ORDER BY
    first_name;
    结果:

2.按降序对结果集按一列排序
以下语句按名字降序对客户列表进行排序。
SELECT
first_name,
last_name
FROM
sales.customers
ORDER BY
first_name DESC;
结果:

3.按多列对结果集进行排序
以下语句检索客户的名字,姓氏和城市。 它首先按城市对客户列表进行排序,然后按名字排序。
SELECT
city,
first_name,
last_name
FROM
sales.customers
ORDER BY
city,
first_name;
结果:

4.按多列和不同顺序对结果集进行排序
以下语句按城市按降序对客户进行排序,之后按第一个名称按升序对排序结果进行排序。
SELECT
city,
first_name,
last_name
FROM
sales.customers
ORDER BY
city DESC,
first_name ASC;
结果:

5.按不在选择列表中的列对结果集进行排序,
注意, state 列在 customers 表中定义。 如果不是,那么查询将无效。
可以通过选择列表中未显示的列对结果集进行排序。
例如,以下语句按 state 对客户进行排序,即使 state 列未显示在选择列表中。
SELECT
city,
first_name,
last_name
FROM
sales.customers
ORDER BY
state;
结果:

6.按表达式对结果集进行排序
LEN() 函数返回字符串的字符数。 以下语句使用 ORDER BY 子句中的 LEN() 函数来检索按名字长度排序
客户列表。

SELECT
first_name,
last_name,
LEN(first_name) as len_name
FROM
sales.customers
ORDER BY
LEN(first_name) DESC;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值