对数据进行排序:
使用 SELECT 语句从表中查询数据时,不保证结果集中的行顺序。 这意味着SQL Server可以返回具有未指定行顺序的结果集。保证结果集中的行已排序的方法是使用 ORER BY 子句。 以下是 ORDER BY 子句的语法:

ASC | DESC - 使用 ASC 或 DESC 指定是否应按升序或降序对指定列中的值进行排序。 ASC 将结果从最低值排序到最高值,而 DESC 将结果集从最高值排序到最低值。如果未明确指定 ASC 或 DESC ,则SQL Server将默认使用 ASC 来排序顺序。 此外,SQL Server将 NULL 视为最低值。
处理具有 ORDER BY 子句的 SELECT 语句时, ORDER BY 子句是要处理的最后一个子句。
SELECT TOP 子句用于限制查询结果集中返回的行数或行百分比。
由于存储在表中的行的顺序是不可预测的,因此 SELECT TOP 语句始终与 ORDER BY 子句一起使用。 结果,结果集限于前 N 个有序行数。
SELECT 语句可以包含其他子句,如: WHERE , JOIN , HAVING 和 GROUP BY 。
OFFSET 和 FETCH 子句是 ORDER BY 子句的选项,它们用于限制查询返回的行数。必须将 OFFSET 和 FETCH 子句与 ORDER BY 子句一起使用,OFFSET 和 FETCH 子句比实现 TOP 子句更适合实现查询分页解决方案。OFFSET 子句指定在开始从查询返回行之前要跳过的行数。
OFFSET 子句是必需的,而 FETCH 子句是可选的。 此外, FIRST 和 NEXT 是同义词,因此可以互换使用它们。
SELECT DISTINCT 子句检索指定列列表中的唯一不同值,换句话说,它从结果集中删除列中的重复值。DISTINCT 子句将所有 NULL 值视为相同的值。
分页查询需要参数,PageSize:每页多少条,pageNum:页数。
在 WHERE 子句中,指定搜索条件以过滤 FROM 子句返回的行。 WHERE 子句仅返回导致搜索条件计算为TRUE 的行。搜索条件是逻辑表达式或多个逻辑表达式的组合。
AND 是一个逻辑运算符,用于组合两个布尔表达式。
OR 是一个逻辑运算符,用于组合两个布尔表达式
在语句中使用多个逻辑运算符时,SQL Server将在 AND 运算符之后计算 OR 运算符。 但是,BETWEEN 运算符是一个逻辑运算符,用于指定要测试值的范围。
可以使用大于或等于( >= )且小于或等于( <= )来替换 BETWEEN 运算符,使用 BETWEEN 运算符的条件比使用比较运算符 >= , <= 和逻辑运算符AND的条件更具可读性。
要取消 BETWEEN 运算符的结果,请使用 NOT BETWEEN 运算符。
IN 运算符是一个逻辑运算符,等效于多个 OR 运算符。
pattern模式是要在列或表达式中搜索的字符序列。它可以包含以下有效通配符:
通配符百分比( % ):任何零个或多个字符的字符串。
下划线( _ )通配符:任何单个字符。
[list of characters] 通配符:指定集合中的任何单个字符。
[character-character] :指定范围内的任何单个字符。
[^] :不在列表或范围内的任何单个字符。
like模糊查询默认是不区分大小写的
通配符使 LIKE 运算符比等于( = )和不等于( != )字符串比较运算符更灵活。
转义字符指示 LIKE 运算符将通配符视为常规字符。转义字符没有默认值,必须仅计算为一个字
符。
[list of characters]通配符:带有字符列表的方括号,例如: [ABC] 表示单个字符,必须是列表中指定的字符之一。
[character-character]通配符:具有字符范围的方括号,例如 [A-C] 表示必须在指定范围内的单个字符。
[^]通配符:带有插入符号( ^ )后跟范围,例如 [A-C] 或字符列表,例如 [^ABC] 的方括号表示不在指定范围或字符列表中的单个字符。
列和表别名:SQL 别名用于为 表 或 表中的列 提供临时名称;通常用于使 表名 或 列名 更具可读性; 一个别名只存在于查询期间;别名使用 AS 关键字,通常可以省略。
建议在下列情况下使用别名:查询涉及多个表;用于查询函数;需要把两个或更多的列放在一起;
列名长或可读性差。
连接表:在关系数据库中,数据分布在多个逻辑表中。要获得完整有意义的数据集,需要使用连接来查询这些表中的数据。SQL Server支持多种连接,包括 [内连接],[左连接],[右连接],[全外连接]和[交叉连接]。每种连接类型指定SQL Server如何使用一个表中的数据来选择另一个表中的行
SQL Server内连接:内连接是SQL Server中最常用的连接之一。 内部联接子句用于查询来自两个或多个相关表的数据。
SQL Server左连接:LEFT JOIN 子句用于查询来自多个表的数据。它返回左表中的所有行和右表中的匹配行。如果在右表中找不到匹配的行,则使用 NULL 代替显示。
对于 INNER JOIN 子句,如果将 ON 子句中的条件放在 WHERE 子句中,则它在功能上是等效的。
SQL Server右连接:RIGHT JOIN 子句组合来自两个或多个表的数据。 RIGHT JOIN 开始从右表中选择数据并与左表中的行匹配。 RIGHT JOIN 返回一个结果集,该结果集包含右表中的所有行,无论是否具有左表中的匹配行。如果右表中的行没有来自右表的任何匹配行,则结果集中右表的列将使用 NULL 值。
SQL Server 交叉连接:CROSS JOIN 连接两个或多个不相关的表。
CROSS JOIN 将第一个表(T1)中的每一行与第二个表(T2)中的每一行连接起来。换句话说,交叉连接返回两个表中行的笛卡尔积。 与INNER JOIN或LEFT JOIN不同,交叉连接不会在连接的表之间建立关系。
SQL Server自连接
自联接用于将表连接到自身(同一个表)。 它对于查询分层数据或比较同一个表中的行很有用。
自联接使用内连接或左连接子句。 由于使用自联接的查询引用同一个表,因此表别名用于为查询中的表分配不同的名称。
请注意,如果在不使用表别名的情况下在查询中多次引用同一个表,则会出现错误。