当前位置: 首页 > article >正文

sql纵表转横表

项目上有一个需求(例子):

用户表

user{

id,

name,

workCode

}

id        name        workCode

1        张三           WC1001

2        李四           WC1002

工作信息表

work{

id,

name,

workCode,

workTimeSun

}

id        name        workCode        workTimeSun

1        厨师           WC1001          3

2        司机           WC1001          2

3        厨师           WC1002          5

5        司机           WC1002          6

 用Java代码很好实现,取出某个人的所有工作,然后用一个vo实体类保存拼接起来。但是用一个sql取出,就必须把工作名称和工作时间都用一个字段显示出来,如下:

SELECT USER.NAME,
 MAX( CASE WORK.workCode WHEN 'WC1001' THEN WORK.workTimeSun ELSE '' END ) AS workTimeValue1,
 MAX( CASE WORK.workCode WHEN 'WC1002' THEN WORK.workTimeSun ELSE '' END ) AS workTimeValue2
FROM
	USER 
LEFT JOIN WORK ON WORK.workCode = USER.workCode
GROUP BY
	USER.ID

 参考博客:

Mysql 纵表转换为横表_mysql纵表转横表-CSDN博客


http://www.kler.cn/a/383457.html

相关文章:

  • TORCH_CUDA_ARCH_LIST
  • C#(事件)2
  • 搭建Elastic search群集
  • sqoop的参数有哪些?
  • Vue.js 响应接口
  • Latex+VsCode+Win10搭建
  • WPF界面控件Essential Studio for WPF更新至2024 v3,具有更高性能 | 附下载
  • 看电动缸是如何提高农机的自动化水平
  • SQL 专项练习题(合集)
  • 《通过 Jmeter 压测存储过程详解》
  • Gitlab-执行器为Kubetnetes时的注意事项,解决DNS解析问题
  • 基于ExtendSim的库存与订购实验
  • spring-data-jpa 一对多,多对一,多对多
  • PathVariable annotation was empty on param 0.问题解决
  • 《C语言程序设计现代方法》note-3 选择语句 循环语句
  • C++(一)
  • 开学轻松逆袭孩子的学习利器培养自律习惯,提高学习效率❗❗让习惯养成更轻松~
  • 【Rust Crate之Actix Web(一)】
  • Sigrity Power SI 3D-EM Inductance Extraction模式如何进行电感的提取操作指导(一)
  • 计算机体系结构知识(二)-gdb和args
  • Linux -- 初识线程
  • 【鉴权】OAuth 2.0: 高度灵活与安全的身份认证框架
  • 百度实习生内推
  • Java实战项目-基于微信小程序的校园生活互助服务小程序
  • 供热的一些基础技术数据
  • 2024年10月全球人工智能领域的重大事件盘点