sql server排序之通配符过滤与数据分组
本文导语: 在sql server中,ORDER BY子句位于SELECT语句的末尾,它允许指定按照一个列或者多个列进行排序,还可以指定排序方式是升序(从小到大排列,ASC)还是降序(从大到小排列,DESC)但默认情况是升序。 按照年龄从大到小排序,如果...
在sql server中,ORDER BY子句位于SELECT语句的末尾,它允许指定按照一个列或者多个列进行排序,还可以指定排序方式是升序(从小到大排列,ASC)还是降序(从大到小排列,DESC)但默认情况是升序。
按照年龄从大到小排序,如果年龄相同则按照工资从大到小排序:
ORDER BY子句要放到WHERE子句之后 :
通配符过滤关键字使用LIKE 。
单字符匹配的通配符为半角下划线“_”,它匹配单个出现的字符。
例如:以单个字符开头,剩余部分为“hiya”
多字符匹配的通配符为半角百分号“%”,它匹配任意次数(零或多个)出现的任意字符。 “k%”匹配以“k”开头、任意长度的字符串。
检索姓名中包含字母“n”的员工信息:
来看些具体的例子吧。
例子:
-非o开头,包含o的字符
select * from T_Employee where FName like '[^o]%o%_'
--非o结尾,包含o的字符
select * from T_Employee where FName like '%o%[^o]'
--非o开头和结尾,包含o的字符串
select * from T_Employee where FName like '[^o]%o%[^o]'
--Group By多条件分组时,将条件相加,看是否相等相加。
--分组的两种情况
--1 select 中查询的字段与group by 中字段一样
--错误:
select FName ,FAge ,COUNT (*) from T_Employee group by FName
--正确:
select FName ,FAge ,COUNT (*) from T_Employee group by FName,FAge
--正确2:
select FName ,FAge ,COUNT (*) from T_Employee group by FName,FAge
select FAge ,COUNT (*) from T_Employee group by FAge
--2 group by 中未分组的字段在 select 中是聚合函数
select COUNT (FName) as 人数 ,FAge from T_Employee group by FAge
Go
--分组之后的结果集条件Having
select FAge ,COUNT (*) from T_Employee
group by FAge
having COUNT(*)>1
GO