位置: 编程技术 - 正文

一个简单的SQL 行列转换语句(一个简单的群规怎么写)

编辑:rootadmin
一个简单的SQL 行列转换 Author: eaglet 在数据库开发中经常会遇到行列转换的问题,比如下面的问题,部门,员工和员工类型三张表,我们要统计类似这样的列表 部门编号 部门名称 合计 正式员工 临时员工 辞退员工 1 A 1 这种问题咋一看摸不着头绪,不过把思路理顺后再看,本质就是一个行列转换的问题。下面我结合这个简单的例子来实现行列转换。 下面3张表 描述部门,员工和员工类型之间的关系。 插入测试数据 看一下部门、员工和员工类型的列表 Department EmployeeName EmployeeType ---------- ------------ ------------ A Bob 正式 A John 临时 A May 正式 B Tom 正式 B Mark 辞退 B Ken 正式 现在我们需要输出这样一个列表 部门编号 部门名称 合计 正式员工 临时员工 辞退员工 这个问题我的思路是首先统计每个部门的员工类型总数 这个比较简单,我把它做成一个视图 现在 select * from VDepartmentEmployeeType Id Department EmployeeType Cnt ----------- ---------- ------------ ----------- 2 B 辞退 1 1 A 临时 1 1 A 正式 2 2 B 正式 2 有了这个结果,我们再通过行列转换,就可以实现要求的输出了 行列转换采用 case 分支语句来实现,如下: 看一下结果 部门编号 部门名称 正式 临时 辞退 合计 ----------- ---------- ----------- ----------- ----------- ----------- 1 A 2 1 0 3 2 B 2 0 1 3 现在还有一个问题,如果员工类型不可以应编码怎么办?也就是说我们在写程序的时候并不知道有哪些员工类型。这确实是一个 比较棘手的问题,不过不是不能解决,我们可以通过拼接SQL的方式来解决这个问题。看下面代码 执行结果如下: 部门编号 部门名称 辞退 临时 正式 合计 ----------- ---------- ----------- ----------- ----------- ----------- 1 A 0 1 2 3 2 B 1 0 2 3 这个结果和前面硬编码的结果是一样的,但我们通过程序来获取了所有的员工类型,这样做的好处是如果我们新增了一个员工类型,比如“合同工”,我们不需要修改程序,就可以得到我们想要的输出。 如果你的数据库是SQLSERVER 或以上,也可以采用SQLSERVER 通过的新功能 PIVOT 结果如下 部门编号 部门名称 正式 临时 辞退 ----------- ---------- ----------- ----------- ----------- 1 A 2 1 NULL 2 B 2 NULL 1 NULL 可以通过 ISNULL 函数来强制转换为0,这里我就不写出具体的SQL语句了。这个功能感觉还是不错,不过合计好像用这种方法不太好搞。不知道各位同行有没有什么好办法。

推荐整理分享一个简单的SQL 行列转换语句(一个简单的群规怎么写),希望有所帮助,仅作参考,欢迎阅读内容。

一个简单的SQL 行列转换语句(一个简单的群规怎么写)

文章相关热门搜索词:一个简单的灯笼,一个简单的群规怎么写,一个简单的群规内容,一个简单的sql注入漏洞检测工具,一个简单的sql注入漏洞检测工具,一个简单的微笑说说,一个简单的群规怎么写,一个简单的sql注入漏洞检测工具,内容如对您有帮助,希望把文章链接给更多的朋友!

SQLServer 常用语句(按功能分) 一、简单查询简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。例如,下面的语

SQLServer 管理常用SQL语句 1.查看数据库的版本select@@version2.查看数据库所在机器操作系统参数execmaster..xp_msver3.查看数据库启动的参数sp_configure4.查看数据库启动时间selectconvert(varch

SQL Server 中的触发器使用 下面我摘录了SQLServer官方教程中的一段关于触发器的文字,确实有用的一点文字描述。可以定义一个无论何时用INSERT语句向表中插入数据时都会执行的

标签: 一个简单的群规怎么写

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

上一篇:Linq to SQL 插入数据时的一个问题

下一篇:SQLServer 常用语句(按功能分)(sqlserver的基本语句)

  • 跨年增票能开红冲吗?
  • 专利年费滞纳金计入什么科目
  • 增值税发票遗失怎么操作
  • 社保稽查公司提供不了会计分录怎么办
  • 发票多开了一张怎么处理?
  • 软件公司的销售
  • 客运站收到承运方开具增值税专用发票可否抵扣
  • 实习生应该如何计算个人所得税
  • 房租收入纳税义务
  • 出口退税的发票怎么做账
  • 推广和业务
  • 境外增值税代扣代缴
  • 工业企业财务核算方法
  • 船票能开发票吗
  • 小微企业免税销售额填含税还是不含税
  • 什么是税收编码,在哪里查
  • 个体工商户变更法人
  • 实际发生坏账的账务处理分录
  • 如何看云空间的内容
  • 克罗地亚佩列沙茨
  • 投标保证金退回是什么意思
  • 收到退回付款货款
  • 收境外汇款时怎么操作
  • neoDVDstd.exe - neoDVDstd是什么进程 有什么用
  • 最小的摄像头是多大
  • thinkphp exec
  • php 文件上传类型限制
  • vuecli项目实战
  • js示例
  • 轮播图效果用css怎么实现
  • 怎样部署
  • php图片添加水印的方法
  • thinkphp6验证
  • 贷款减值准备怎么进损益类账户
  • 高效快速编制会计分录如何做?
  • python多态的概念
  • dedecms安装及配置
  • 约当产量法的含义
  • 购买固定资产未入账
  • 增值税纳税申报实训心得体会
  • 资产是指()
  • 甲供材的卸料由谁负责
  • 非正常损失的货物
  • 技术报酬金是什么意思
  • 企业年底亏损怎么结转
  • 收到银行的贷款怎么做会计分录
  • 企业所得税弥补亏损可以弥补几年
  • 持有至到期投资账务处理
  • 车辆抵押贷款影响以后卖车吗
  • 简述公司利润分配的程序
  • sql触发器菜鸟教程
  • innodb.trx
  • solaris重启服务器命令
  • mac怎么传输文件夹
  • linux vmtool
  • win7 手动输入用户名
  • ubuntu系统升级 开机黑屏怎么解决
  • win10链接手机怎么用
  • window10的微软商店在哪
  • msp sncp
  • 使用速度最快的手机
  • win10打不开应用市场
  • js数组常用的方法及用法
  • nodejs搭建web服务器
  • opengl入门视频教程
  • ftp下载工具能自动登录ftp服务器
  • node js入门
  • Node.js中的事件循环是什么样的
  • unity unity3d
  • jquery实现div左右移动
  • javascriptjs
  • jquery移动端ui框架
  • js实现复制文本
  • python django 项目框架图
  • python框架flask系列
  • 辽宁省国家税务局网上申报
  • 广州市国家税务局稽查局举报中心
  • 税务稽查团队
  • 国家税务总局关于新型墙体材料增值税政策的通知
  • 车辆购置印花税需入固定资产吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设