SQL 函数

ORDER BY 列名       可以根据这一列中的元素的大小进行排序,用 SELECT  把排序后的结果显示出来。后加 ASC 表示升序,DESC表示降序。默认为升序。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

GROUP BY 列名   对数据进行分组,数据相同的元素合并为一组。当用 SELECT 取数据时,不能取不包含在 GROUP BY 中的字段,但可以用聚合函数来包括其他列,例如COUNT(*),MAX(),SUM()等。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

例如COUNT(*),MAX(),SUM() 等聚合函数不能包括在 WHERE 子句中。当要取出用 GROUP BY 包含在一组中个数大于 1 的数据时,不能写

WHERE COUNT(*)>1
但可以用 HAVING 。

HAVING COUNT(*)>1
HAVING 是对分组后的数据进行过滤,而 WHERE 是对原始数据进行过滤的。HAVING 中能用的列只能是 SELECT 中的列。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

ISNULL 通常用在 SELECT 语句中,用于判断所查询的值是否为空。它有两个参数,第一个是不为空时选择的信息,第二个是为空时代替的值

select ISNULL(Name,'佚名') as 姓名 FROM T_USER

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

CASE  类似于 switch ...case....

它的格式为

CASE value
WHEN value1 THEN returnvalue1
WHEN value2 THEN returnvalue2
.....
ELSE
END

create table Cost(Name varchar(10),CLevel int);

insert into Cost values('lusy',1)
insert into Cost values('Tom',2)
insert into Cost values('Andy',3)
insert into Cost values('Marry',2)
select Name,
(
case CLevel
when 1 then '一级客户'
when 2 then '二级客户'
when 3 then '三级客户'
else '未知'
end
) as 客户级别
from Cost

执行结果



-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

有一张表 T_Scores ,要求输出以下格式

Name 胜 负
拜仁    1    2
湖人    1    0

奇才    2    0

select Name,
sum(
(
case score
when N'胜' then 1
else 0
end
)) as 胜,
sum(
(
case score
when N'负' then 1
else 0
end 
)) as 负
from T_scores
group by Name


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值