在SQL Server中,最基础的就是数据查询,而要从中查询数据,则要使用SELECT语句。
在上面的图片中,select是要指定查询表的列名,而from则是表示这些列名来自于哪张源表。
在处理select语句中,SQL Server首先是要处理from子句,然后处理select子句。
然而,在使用select查询数据中,并不能保证结果集中的行顺序。
能使结果集中的行已排序的方法是使用order by子句。
在上图,order by之后是需要进行排序的列。如果有多个列名,则按第一列排序,然后在进行第二列排序。
ASC:这是将结果从最低值排到最高值。
DESC:这是将结果从最高值排到最低值。
注:如果未明确指定ASC或DESC,则将默认使用ASC。如下图:
在下图中,它首先会按城市对列表进行排序,然后在城市的基础上按名字排序。
注:zip_code列在customers表中定义。那么就可以通过选择列表中未显示的列对结果集进行排序。
如上图,即使zip_code列没有显示在选择列表中,但一样会对zip_code列进行排序。
除了以上,我们还可以按表达式对结果进行排序
LEN()函数是返回字符串的字符数。我们可以用它来检索名字长度来进行排序。
在SQL Server中,是允许根据选择列表中显示的列的序号位置对结果集进行排序。如下图所示:
它会对city以及first_name进行排序,没有指定列名,仅仅是使用了列到的序号位置。