sql行转列的3种方法
行转列的3种方法
max(case when)
pivot()
用存储过程行转列
准备数据
--创建表
create table Table_A
(商家 string,奶茶 string,价格 bigint
);
--插入数据
insert into Table_A(商家,奶茶,价格) values
('1点点','波霸奶茶',14),
('1点点','四季奶青',14),
('喜茶','波霸奶茶',21),
('CoCo','四季奶青',16);
--查询数据
select * from Table_A ;
行转列-方法1:max(case when)
select 商家,max(case when 奶茶='波霸奶茶' then 价格 end) as 波霸奶茶,max(case when 奶茶='四季奶青' then 价格 end) as 四季奶青
from Table_A group by 商家;
行转列-方法2:pivot()
select * from Table_A pivot(max(价格) for 奶茶 in (波霸奶茶,四季奶青)) a;
--我这边使用的sql不支持使用pivot(),此语句的正确性有待验证;
行转列-方法3:用存储过程
alter proc pro_test
@userImages varchar(200),
@奶茶 varchar(20),
@奶茶1 varchar(200),
@TableName varchar(50)
asdeclare @sql varchar(max)='select * from (select '+@userImages+' from'+@TableName+') tab
pivot
(
sum('+@奶茶+') for 奶茶('+@奶茶1+')
) pvt'
exec (@sql)
go
exec pro_test '商家,奶茶,价格',
'Table_A',
'奶茶',
'波霸奶茶,四季奶青'
;
--我这边使用的sql不支持使用存储过程,此语句的正确性有待验证;
sql行转列的3种方法相关推荐
- mysql行转列sql函数_sql动态行转列的两种方法
第一种方法: 代码如下: select *from ( select Url,case when Month=01 then '1月' when Month=02 then '2月' when ...
- Oracle 实现行转列的几种方法
Oracle 实现行转列的几种方法 表数据 1 使用 decode 与聚合函数实现 2 使用 case when 与聚合函数实现 3 使用 pivot 函数 表数据 with students as( ...
- excel多列多行堆叠成多列一行_「Excel技巧」Excel快速实现将一行转为多行多列的四种方法...
今天来说说在Excel中,将表格里的一列转换为多行多列的几种方法. 例如,以下表格,是一个行业分类表,都放在同一列中.现我们准备把它转为多列. 表格里数据除掉标题行行,总共有60列数据,干脆我们就给它 ...
- sql语句实现行转列的3种方法
前言 一般在做数据统计的时候会用到行转列,假如要统计学生的成绩,数据库里查询出来的会是这样的,但这并不能达到想要的效果,所以要在查询的时候做一下处理. CREATE TABLE TestTable([ ...
- mysql 列转行union all_mysql的 行转列(7种方法) 和 列转行
# 一.行转列 # 即将原本同一列下多行的不同内容作为多个字段,输出对应内容. 建表语句 DROP TABLE IF EXISTS tb_score; CREATE TABLE tb_score( i ...
- 【精】mysql行转列的7种方法及列转行
文章目录 一.行转列 1.使用case-when-then 进行行转列 2.使用IF() 进行行转列: 3.利用SUM(IF()) 生成列 + WITH ROLLUP 生成汇总行,并利用 IFNULL ...
- 搞定mysql的 行转列(7种方法) 和 列转行
目录 一.行转列 1.使用case-when-then 2.使用SUM(IF()) 生成列 3.使用SUM(IF()) 生成列 + WITH ROLLUP 生成汇总行 4.使用SUM(IF()) 生 ...
- SQL 行转列的两种做法
if object_id('tb')is not null drop table tb Go create table tb(姓名 varchar(10),课程 varchar(10),分数 int) ...
- Spark SQL DataFrame新增一列的四种方法
Spark SQL DataFrame新增一列的四种方法 方法一:利用createDataFrame方法,新增列的过程包含在构建rdd和schema中 方法二:利用withColumn方法,新增列的过 ...
最新文章
- 腾讯广告广点通API接入文档(Android)
- LeetCode-1.Two Sum
- Oracle EBS-SQL (INV-3):检查仓库库存价值明细.sql
- opencv 图像雾检测_OpenCV图像处理-基于OpenPose的关键点检测
- ASP.NET MVC Model绑定(四)
- 使用分页方式读取超大文件的性能试验
- SpringBoot生成二维码
- 怎么才能够坚持做一件事并且把它做好?
- Pr:用Audition协作处理音频
- 第二次作业—时事点评
- few-shot vid2vid部署安装及测试
- 枕头的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- gbd调试的基本使用方法
- TriCore 与 RT-Thread(TC264 移植)
- css图片压缩不变形
- 计算机安装操作步骤,重新安装计算机系统的步骤,最简单,最安全的操作!
- 零基础也能学会的——用Python制作超级玛丽小游戏
- [测开篇]设计测试用例的方法如何正确描述Bug
- JAVA二维码生成工具
- 基于Autoware制作高精地图(六)
热门文章
- 编译安装常用包+阿里镜像源-常用资源-系统-下载-科莱软件下载-docker仓库包-安全圈-杏雨梨云-图形界面安装...
- 百度统计 api java_java简单调用百度统计API实现后台展示统计数据
- 整理经济学人词频表(词频分割过程)
- 用红蓝3D眼镜在PC上观看3D影片效果并不好
- 响应式布局必懂知识_五分钟教会你响应式布局
- MySQL入门系列:数据的插入、删除和更新
- 乐享计算机会计学院,从ACCA到CPA,他在「财会路」上乐享前行
- 【Node】nvm 版本管理工具
- Windows上node.js的多版本管理工具
- 用python批量下载贴吧图片 附源代码