补充:sql server 中的相关查询、case函数

时间:2022-05-06 21:12:22

相关查询(在同一个表中)

相关查询类似子查询,但是又不同于子查询;子查询中的子条件可以单独查出数据,但是相关查询的子条件不能查处数据。(可以理解成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

使用后的结果

补充:sql server 中的相关查询、case函数