位置: 编程技术 - 正文

一个简单的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的基本语句)

  • 小微企业税收优惠政策2023年
  • 货运代理费计入固定资产吗
  • 对公账户余额和实际不符
  • 兼营和混合销售的联系
  • 小规模免税的税额怎么处理
  • 个体工商户化妆品经营范围
  • 销售折让会影响单价吗
  • 购入材料过程中支付运费
  • 投资性房地产转换日公允价值大于账面价值
  • 收到销项负数发票怎么处理
  • 企业如何认定
  • 企业承租经营的承租人取得的所得
  • 人力资源外包差额计税税率
  • 财产租赁合同印花税申报期限
  • 国企不交社保怎么办
  • 实收资本印花税是一年一交吗
  • 金税盘全额抵扣分录怎么做
  • 代开专票怎么做账?
  • etc卡预充值后怎么办
  • 固定资产内部转移单
  • 党建工作经费计提比例
  • 2019年基金市场
  • 个人股东企业分红一共需要交多少税
  • 改造工程完工会计分录
  • win7系统无法启用网络发现
  • win11隐藏图标怎么弄出来
  • SQL Server2005、2008如何彻底删除卸载并重新安装?
  • mac文本文件
  • ramaint.exe - ramaint是什么进程 有什么用
  • PHP中使用全局变量来接受表单中提交的数据
  • 公寓收费标准
  • fpzs1是什么文件可以删除吗
  • 生活常识 小常识
  • 学生兼职收入按什么交个税
  • 冰上的卷羽鹈鹕,希腊凯尔基尼湖 (© Guy Edwardes/Minden Pictures)
  • 快递收据能否作为发票
  • 实际退税能退多少
  • 前端这点事
  • 雪花算法时钟回拨
  • vue懒加载机构树刷新
  • 外商投资企业 外资企业
  • 条码续展费用
  • javatoolkit详解
  • Pythonround函数作用
  • 织梦网站特有标识
  • 行政性收费属于什么科目
  • sql里面union 和union all区别
  • 出租车定额发票代码含义
  • 工程施工人工费,材料费,机械费占多少比例
  • 开办费用怎么处理
  • 企业用实物资产出资 增值税
  • 企业取得租车发票
  • 报销管理规定
  • 互联网代记账业务
  • 企业必须建立哪些制度
  • imac如何删除客人用户
  • ubuntu安装quagga
  • mac之间传送帐号怎么传送
  • squid服务器配置
  • 三分钟教你学会骑女式摩托车,连菜鸟都能学会
  • win8怎么更改密码
  • win7 64位旗舰版设置插上耳机就能播放声音拔下耳机就自动禁音方法
  • 观察者模式的应用
  • jquery的使用
  • bat ping批处理
  • node.js安装模式选择
  • nodejs处理excel
  • 基于python的系统
  • 安卓判断横竖屏
  • python迭代器生成器
  • javascript基础笔记
  • jquery.js插件
  • python 判断字符串编码
  • 税务大厅买票需要什么东西
  • 国家河南税务局
  • 海南省地方税务局关于土地增值税清算有关问题的通知
  • 非房地产企业土地增值税清算
  • 有关节能环保的英语作文
  • 北京市地税局第一稽查局郭洪鑫
  • 贵州国家税务局陈开平
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设