sql – 将行转换为列
发布时间:2020-12-24 16:42:43 所属栏目:MsSql教程 来源:网络整理
导读:我怎么能转换这个表: – INV DESCRIPTION AMOUNT--------------------------1001 CHARGES 1001001 FREIGHT 301001 INSURANCE 201002 CHARGES 2151002 FREIGHT 321002 INSURANCE 25 使用SQL格式: – INV CHARGES FREIGHT INSURANCE-------------------------
我怎么能转换这个表: – INV DESCRIPTION AMOUNT -------------------------- 1001 CHARGES 100 1001 FREIGHT 30 1001 INSURANCE 20 1002 CHARGES 215 1002 FREIGHT 32 1002 INSURANCE 25 使用SQL格式: – INV CHARGES FREIGHT INSURANCE --------------------------------- 1001 100 30 20 1002 215 32 25 解决方法使用:SELECT t.inv,MAX(CASE WHEN t.description = 'CHARGES' THEN t.amount ELSE NULL END) AS charges,MAX(CASE WHEN t.description = 'FREIGHT' THEN t.amount ELSE NULL END) AS freight,MAX(CASE WHEN t.description = 'INSURANCE' THEN t.amount ELSE NULL END) AS insurance FROM YOUR_TABLE t GROUP BY t.inv ORDER BY t.inv 为了支持动态的描述列表,您必须指定它所针对的数据库,因为每个数据库的动态SQL语法都不同. PIVOT / UNPIVOT是ANSI语法,但支持有限: > SQL Server 2005 MySQL不支持PIVOT,也不支持SQLite.我不知道PostgreSQL或DB2何时/如果…… (编辑:应用网_常德站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql-server – 成功配置SQL Server进行数据库镜像后,收到错
- sql-server – 为什么SQL Server Managment Studio打开速度
- 使用SQL逐字翻译字符串
- 数据库 – 编写Joomla桥 – 用户插件
- 如何在SQL Access数据库表中找到第11个条目?
- SQL Server 2005仅还原一个架构
- sql-server – 在SSMS 2012中格式化T-SQL
- sql-server – 如何在DST之前或之后的日期获得UTC与本地时间
- 如何在单个数据库中将Hibernate用于两个不同的模式
- sql-server-2008 – 为什么我不能使用NEWSEQUENTIALID()作为
站长推荐
热点阅读