相关查询(在同一个表中)
相关查询类似子查询,但是又不同于子查询;子查询中的子条件可以单独查出数据,但是相关查询的子条件不能查处数据。(可以理解成C#中for的穷举法,第一个for走一个,第二个for走一圈,在相关查询中,括号内的数据只有几个,外面的查询有全部的数据,每个数据到括号中去比较是否合适)
格式:
select * from 表名1 as a where a.列名 关系表达式或逻辑运算符
(
select * from 表名1 as b where a.相关列名1 = b.相关列名1
)
相关查询的查询原理:(在同一个表中)在括号内,根据相关列名的对应关系,如果a的数据等于b,则执行括号内的代码
Case语句:
类似C#中的switch() case用法
格式:
Case 一个表达式的值或者列名或者不写
When 1 then ‘’
When 2 then ‘’
create table qiusai
(
name nvarchar(10),
score nvarchar(10)
)
insert into qiusai values('拜仁','胜')
insert into qiusai values('奇才','胜')
insert into qiusai values('湖人','胜')
insert into qiusai values('拜仁','负')
insert into qiusai values('拜仁','负')
insert into qiusai values('奇才','胜')
select * from qiusai
case的用法:(增加一个case表示增加一列,case的用法和c#中 switch case的用法类似)
select name,count(
(
case score
when '胜' then '111'
end
))as 胜,count(
(
case score
when '负' then '000'
end
))as 负
from qiusai group by name
使用后的结果