首页 > 代码库 > 补充:sql server 中的相关查询、case函数

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

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

 

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