-----------case函数用法
use School
select * from Score
SELECT * FROM Student
--
SELECT
scoreId,
studentId,
english,
评级=
case --类似c#中的 if ..else,对一个范围的值进行判断
when english>=90 then '优秀'
when english>=80 then '良好'
when english>=70 then '中等'
when english>=60 then '及格'
else '不及格'
end
FROM Score
----case level
-- when 1 then '骨灰'
-- when 2 then '大虾'
-- when 3 then '菜鸟'
-- end
select
scoreId,
studentId,
english,
等级=
case english ---类似于c#中的swith ...case只能对离散的值进行判断
when 100 then '百分'
when 95 then '九十五'
else
'小于九十分'
end
from Score
--有一个表中有A,B两列,现在要求查询结果集中包含A,B,C三列。
--如果A列中的值大于B列,则c列中的值为A中的值,否则为B中的值。
create table TestCase
(
A int,
B int
)
select * from TestCase
insert into TestCase values(10,20)
insert into TestCase values(100,32)
select
A,
B,
C=
CASE
WHEN A>=B THEN A
ELSE B
END
from TestCase
--在订单表中,统计每个销售员的总销售金额,列出销售员名、总销售金额、称号(>6000金牌,>5500银牌,>4500铜牌,否则普通)
USE Test
select * from MyOrders
SELECT
salesAssistant AS 销售员,
SUM(saveNumber*savePrice) as 销售总金额,
称号=
case
when SUM(saveNumber*savePrice) >6000 then '金牌'
when SUM(saveNumber*savePrice) >5500 then '银牌'
when SUM(saveNumber*savePrice) >4500 then '铜牌'
FROM MyOrders
GROUP BY salesAssistant
create table Test2
(
UName varchar(50),
UAge int
)
select *from Test2
insert into Test2 values('tom',20)
insert into Test2 values ('jon',30)
use School
select * from Score
SELECT * FROM Student
--
SELECT
scoreId,
studentId,
english,
评级=
case --类似c#中的 if ..else,对一个范围的值进行判断
when english>=90 then '优秀'
when english>=80 then '良好'
when english>=70 then '中等'
when english>=60 then '及格'
else '不及格'
end
FROM Score
----case level
-- when 1 then '骨灰'
-- when 2 then '大虾'
-- when 3 then '菜鸟'
-- end
select
scoreId,
studentId,
english,
等级=
case english ---类似于c#中的swith ...case只能对离散的值进行判断
when 100 then '百分'
when 95 then '九十五'
else
'小于九十分'
end
from Score
--有一个表中有A,B两列,现在要求查询结果集中包含A,B,C三列。
--如果A列中的值大于B列,则c列中的值为A中的值,否则为B中的值。
create table TestCase
(
A int,
B int
)
select * from TestCase
insert into TestCase values(10,20)
insert into TestCase values(100,32)
select
A,
B,
C=
CASE
WHEN A>=B THEN A
ELSE B
END
from TestCase
--在订单表中,统计每个销售员的总销售金额,列出销售员名、总销售金额、称号(>6000金牌,>5500银牌,>4500铜牌,否则普通)
USE Test
select * from MyOrders
SELECT
salesAssistant AS 销售员,
SUM(saveNumber*savePrice) as 销售总金额,
称号=
case
when SUM(saveNumber*savePrice) >6000 then '金牌'
when SUM(saveNumber*savePrice) >5500 then '银牌'
when SUM(saveNumber*savePrice) >4500 then '铜牌'
FROM MyOrders
GROUP BY salesAssistant
create table Test2
(
UName varchar(50),
UAge int
)
select *from Test2
insert into Test2 values('tom',20)
insert into Test2 values ('jon',30)