zoukankan      html  css  js  c++  java
  • 补充: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

    使用后的结果

  • 相关阅读:
    nginx的配置
    laravel入门
    Laravel5.6整合swagger
    安装arcgis10.2 for desktop需要microsoft.net framework 3.5 sp1或等效环境 解决方案
    Python 安装numpy-1.16.6+mkl-cp27-cp27m-win-amd64.whl和
    Leetcode-链表
    Java-排序-leetcode刷题
    async await要点
    nodejs查询数据库时,sql的空格和关键字问题
    输入mysql -u root -p 报错:ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)
  • 原文地址:https://www.cnblogs.com/hqjy/p/4095879.html
Copyright © 2011-2022 走看看