一、查询数据
数据库表是存储数据库中所有数据的对象。
在以上语法中:
- select_list 指定要在 select子句中查询数据的逗号分隔列的列表。
- schema_name.table_name 是在from子句中指定的源表和表名。
例子:
二、对数据进行排序
- 使用select子句从表中查询数据时,返回的行没有指定顺序,即SQL Server可以返回具有未指定行顺序的结果集。
- 想要返回的行已排序的方法是:使用order by 句子
在以上语法中:
- column_name | expression - 指定要对查询返回的结果的列名或表达式( 如果指定多个列,则结果按第一列排序,然后该排序结果按第二列排序,依此类推)
- order by 子句中出现的列必须对应于选择列表中的列或from子句中指定的表中定义的列。
- asc| desc - 使用 asc或 desc 指定是否按升序或降序对指定列中的值进行排序。
- asc将结果从最低值排序到最高值,而 desc 从最高值排序到最低值。如果未明确指定 asc或 desc ,则SQL Server将默认使用 asc来排序顺序。 此外,SQL Server将 null视为最低值。
例子1:单列进行排序
- order by是排序的关键字
- asc 是升序的关键字(可省,不写,order by的默认的就是升序)
- desc 是降序的关键字
例子2:按照多列进行排序
例子3:使用len() 函数返回字符串的字符数
例子4:按列的序数位置排序
三、限制返回行数
(1)SQL Server Select Top语句
- Select top 用于限制查询结果集中返回的行数。
- percent 用于限制查询结果集中返回的百分比。
例子:
注意:若百分比后算出的数值带有小数;无论小数的值是多大还是多小,都会多查询出一条数据
3.使用 select top with ties
with ties :会把限制查询行的最后一行的相同数据查询出来。
例子:
(2)SQL Server Offset Fetch语句
例子:
- offset和fetch子句是order by子句的选项,用于限制查询返回的行数
- 必须将offset和fetch子句与order by子句一起使用
- Offset子句指定从开始的查询返回行之前要跳过的行数,后跟的数字可>=0
- Fetch子句指定在处理offset子句后要返回的行数,后跟的数字可>=1
- Offset子句是必需的,而fetch子句是可选的,first和next是同义词,可互换使用(一般用next)。
- 分页查询的规律(公式):( num:页数 size:每页的行数 )
offset (num-1)*size rows
fetch next size rows only