首页 > 数据库 >SqlServer行转列,列转行

SqlServer行转列,列转行

时间:2022-12-03 20:34:48浏览次数:38  
标签:product store3 union 转行 SqlServer id 转列 price store

文章来源:https://leetcode.cn/problems/rearrange-products-table/solution/by-esqiimulme-pjiy/

列转行用union或union all将多列的字段整合到一行。(当使用union 时,mysql 会把结果集中重复的记录删掉,而使用union all ,mysql 会把所有的记录返回,且效率高于union 。)

行转列用case...when或if分类讨论, group by进行分组。

 

 

 

列转行

SELECT product_id, 'store1' store, store1 price FROM products WHERE store1 IS NOT NULL
UNION
SELECT product_id, 'store2' store, store2 price FROM products WHERE store2 IS NOT NULL
UNION
SELECT product_id, 'store3' store, store3 price FROM products WHERE store3 IS NOT NULL;

行转列

SELECT
product_id,
SUM(IF(store = 'store1', price, NULL)) 'store1',
SUM(IF(store = 'store2', price, NULL)) 'store2',
SUM(IF(store = 'store3', price, NULL)) 'store3'
FROM
Products1
GROUP BY product_id ;

 

标签:product,store3,union,转行,SqlServer,id,转列,price,store
From: https://www.cnblogs.com/Dongmy/p/16944241.html

相关文章

  • SQLServer CTE 递归查询
    SQLServerCTE递归查询介绍指定临时命名的结果集,这些结果集称为公用表表达式(CTE)。公用表表达式可以包括对自身的引用。这种表达式称为递归公用表表达式。例子组......
  • Oracle 行转列的坑
    在使用Oracle的时候,有个需求需要将统计的数量关联别的表格联查出来,就想到了用行转列,搜了很多种方法,这里记录一下自己遇到的坑。首先要确定一下自己使用的Oracle的版本:因为:......
  • SQLServer中批量插入数据方式的性能对比
    昨天下午快下班的时候,无意中听到公司两位同事在探讨批量向数据库插入数据的性能优化问题,顿时来了兴趣,把自己的想法向两位同事说了一下,于是有了本文。公司技术背景:数......
  • ASP.NET 向SQLSERVER中批量插入数据
    usingSystem.Data;usingSystem.Diagnostics;usingSystem.Data.SqlClient;stringconnectionString="DataSource=HG-J3EJJ9LSW5PY;InitialCatalog=Test......
  • SQLSERVER字符串函数
    1.ASCII返回字符表达式最左端字符的ASCII代码值。语法ASCII(character_expression)参数character_expression是类型为char或varchar的表达式。返回类型int示例下例......
  • SQLServer常用近百条SQL语句(收藏版)
    1.sqlserver查看实例级别的信息,使用SERVERPROPERTY函数selectSERVERPROPERTY('propertyname')2.查看实例级别的某个参数XX的配置select*fromsys.configurations......
  • sqlserver共享锁与排它锁
    ​ 共享锁:(读取)操作创建的锁。其他用户可以并发读取数据,但任何事物都不能获取数据上的排它锁,直到已释放所有共享锁。共享锁(S锁)又称为读锁,若事务T对数据对象A加上S锁,......
  • SQLSERVER数据库三种恢复模式
    1、https://blog.csdn.net/Auspicious_air/article/details/114028422SQLServer数据库的三种恢复模式:简单恢复模式、完整恢复模式和大容量日志恢复模式。  sqlser......
  • SQLServer 数据库事务日志已满 log_backup
      解决方案一:收缩日志1、属性-->选项-->恢复模式,设置为简单 2、任务-->收缩-->文件-->文件类型改成(日志)-->收缩操作选择(在释放为使用的空间前重新组织页),并设置收......
  • [django]sqlserver配置
    python3.8.8安装mssql-djangopipinstallmssql-djangopiplistPackageVersion-------------------asgiref3.5.2Django3.2.16mssql-django1......