位置: 编程技术 - 正文

SQL集合函数中case when then 使用技巧(sql集合包含关系)

编辑:rootadmin

那么在集合函数中它有什么用呢 ?

假设数据库有一张表名为student的表。

如果现在要你根据这张表,查出江西省男女个数,广东省男生个数,浙江省男女个数 怎么写SQL语句?即要生成下结果表

答案是:select sex ,count ( case province when '广东省' then '广东省' end )as 广东省 ,count ( case province when '江西省' then '江西省' end )as 江西省 ,count ( case province when '浙江省' then '浙江省' end )as 浙江省 from student group by sex

count()函数即根据给定的范围和group by(统计方式) 而统计行数据的条数

我们一步步来理解上面语句

1. select sex from student (查询数据表中的存在的男女条数)

2.select sex, count (*) as num from student group by sex (查询表中男女数量)

3.select sex ,province, count (*)as num from student group by sex,province (查询各省男女数量)

重点来了,如果我把count(*) 中的 *号换成任一列名呢? 如count(province) 会怎样?

4.select sex ,province, count (province)as num from student group by sex,province (查询各省男女数量)

结果跟上图一样:这说明换不换都一样。又有count (province)等价于 count(case province when '浙江省' then '浙江省' else province end )

但是如果我们缩小范围呢即count(case province when '浙江省' then '浙江省' end ) 那么请看下面

5.select sex ,province, count ( case province when '浙江省' then '浙江省' end )as num from student group by sex,province

即统计男女数量范围限定在浙江省 再精简一下即下面

6.select sex, count ( case province when '浙江省' then '浙江省' end ) as 浙江省 from student group by sex

已经接近我们的要求了,现在只要加上另几个字段就是了

7.select sex ,count ( case province when '广东省' then '广东省' end )as 广东省 ,count ( case province when '江西省' then '江西省' end )as 江西省 ,count ( case province when '浙江省' then '浙江省' end )as 浙江省 from student group by sex

小结:当然实现有很多种方法 可以多个子查询拼接起来也不无可厚非。我这只是一种思路

补充:case when then 知识点

(1) select (case province when '浙江省' then '浙江' when '江西省' then '江西' end ) as 省份 from student

如果默认范围如果没全包含则为空 像上图的广东省为空

(2)select (case province when '浙江省' then '浙江' when '江西省' then '江西' else province end ) as 省份 from student

推荐整理分享SQL集合函数中case when then 使用技巧(sql集合包含关系),希望有所帮助,仅作参考,欢迎阅读内容。

SQL集合函数中case when then 使用技巧(sql集合包含关系)

文章相关热门搜索词:sql 集合函数,sql 集合函数,sql语句集合,sql的集合处理方式,sql中集合运算,sql的集合处理方式,sql集合操作,sql中集合运算,内容如对您有帮助,希望把文章链接给更多的朋友!

mssql中获取指定日期所在月份的第一天的代码 获取指定日期月份的第一天,你可以使用DATEADD函数,减去指定日期的月份过去了的天数,即可。CREATEFUNCTION[dbo].[udf_FirstDayOfMonth](@DateDATE)RETURNSDATETIMEASBEGI

sqlserver中如何查询出连续日期记录的代码 有在论坛上看到一帖,《请教查询出连续日期记录的方法》,截图如下:Insus.NET尝试写了程序并做了测试,可以得到预期的结果,SQL代码可参考和学习

SQLserver 数据库危险存储过程删除与恢复方法 今天为了实现SQLServer/"target="_blank"sqlserver的复制功能,因为以前删除了很多的sqlserver的一些会导致不安全因素的扩展,导致很多功能无法用,没有办法需

标签: sql集合包含关系

本文链接地址:https://www.jiuchutong.com/biancheng/348841.html 转载请保留说明!

上一篇:sql ntext数据类型字符替换实现代码

下一篇:mssql中获取指定日期所在月份的第一天的代码(sql获取guid)

  • 公司股东向公司借款
  • 外贸企业申报退税流程
  • 价税合计金额怎么算出税额
  • 预期报酬率和期望报酬率一样吗
  • 计提减值准备是什么凭证
  • 辞退员工补偿金是按实发工资算还是应发
  • 电子税务局自然人怎么切换到企业
  • 一个营业执照可以开几家淘宝店
  • 研发费用计入销售费用
  • 社保基数3125交多少钱
  • 外贸企业的会计
  • 上级拨付的固定资产增加类型是什么
  • 银行汇票转给第三方怎么操作
  • 企业清算时
  • 当月的费用次月入账可以么
  • 公司往来款现金流量表
  • 记账汇率是什么意思
  • 非独立核算的分公司是法人主体吗
  • 企业所得税税负怎么算
  • 非独立核算的分公司是法人主体吗
  • 跨年的增值税普通发票可以入账吗
  • 银行利息增值税发票
  • 购销合同印花税最新政策2023
  • 医疗器械 税点
  • 财务负责人必须是本公司员工吗
  • 退了货的发票还能用吗
  • 销售净利率如何分析出来
  • 增值税留抵税额在借方还是贷方
  • phpstudy的ftp
  • 什么是增值税差额征税政策的小规模纳税人
  • win10显示未充电
  • 房产税缴纳标准是多少
  • 固态硬盘最新接口
  • oss使用场景
  • 委托加工物资验收入库的金额
  • 深拷贝的实现方式
  • php开发文档
  • 盈余公积转增资本什么意思
  • 微信小程序基于什么技术
  • 百度地图定位不更新
  • 确认应付职工薪酬如何计算
  • 红票申请单怎么开
  • phpcms怎么修改模板风格
  • 实收资本可以用于偿还借款
  • 应收账款余额百分比法与账龄分析法有何异同
  • 乡村道路属于城市道路吗
  • 企业的经营业务
  • 先付款后签协议是否违法
  • 税金及附加和营业税金及附加是一个科目吗
  • 股权转让中土地要否缴纳增值税
  • 实收资本收到后用途
  • 科目余额表如何看
  • 企业土地补偿款如何做账
  • 成本发票怎么入账
  • 建筑业当月有收入,没成本怎样办
  • 工业企业自制半导体材料
  • sqlserver日期类型数据
  • windows xp sp4 下载 windows xp sp4补丁包(非官方)
  • vista win10
  • win8 所有程序
  • xp系统1
  • 自己的磁盘
  • win7计算机快捷方式不见了
  • win7笔记本电池电量显示怎么设置
  • windows8怎么装
  • 一键清除照片上多余的人
  • css用什么写
  • html截取字符串
  • Https联网工具类
  • 电脑安装node
  • Android多线程开发
  • javascript脚本怎么用
  • Jquery uploadify上传插件使用详解
  • nodejs的组成
  • js鼠标滚动控制图片缩放
  • 查验发票真伪
  • 中山市十大纳税大户
  • 税务局高风险人员有啥影响
  • 耕地占用税减免税范围包括
  • 小规模纳税人收什么税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设