sql 行变列问题

问题描述

<!--StartFragment -->请教高手,有这样一张表A,存放内容如下id name1  a2  a3  b4  c5  a想用一条sql语句将内容输出成以下的形式:a 1,2,5b 3c 4请问大家能不能给一些思路或者sql语句

解决方案

如果数据库是mysql的话,可以这样写能做到select name,group_concat(id) ids from abc group by name
解决方案二:
楼上2位说的对~
解决方案三:
如果是oracle,可以试试wm_concat函数
解决方案四:
后台处理一下就行了,非要数据库实现,就用存储过程
解决方案五:
store procedure
解决方案六:
个人觉得可以先查出来,然后后台再去包装

时间: 2024-09-12 04:52:47

sql 行变列问题的相关文章

sql-SQL 行变列 表交叉 思路求助

问题描述 SQL 行变列 表交叉 思路求助 ![ ![ 图1,2是需求,各部门提出物资申请,管理员汇总 图3为我设计的数据表,求助如何能像excel那样汇总显示出来? 解决方案 交叉表动态列 解决方案二: 根据具体要求写sql语句 解决方案三: 解决方案四: 解决方案五: http://blog.csdn.net/vipxiaotian/article/details/4409423

SQL行转列和列转行代码详解

行列互转,是一个经常遇到的需求.实现的方法,有case when方式和2005之后的内置pivot和unpivot方法来实现. 在读了技术内幕那一节后,虽说这些解决方案早就用过了,却没有系统性的认识和总结过.为了加深认识,再总结一次. 行列互转,可以分为静态互转,即事先就知道要处理多少行(列);动态互转,事先不知道处理多少行(列). --创建测试环境 USE tempdb; GO IF OBJECT_ID('dbo.Orders') IS NOT NULL DROP TABLE dbo.Orde

sql 行转列 PIVOT 列转行 UNPIVOT

原文:sql 行转列 PIVOT 列转行 UNPIVOT 一: 现有表一(t_table1),想转为表二(t_table2)的格式. 表一: 年 公司 收入 2013 公司1 12 2013 公司2 22 2013 公司3 32 2012 公司1 42 2012 公司2 52 2012 公司3 62     表二: 年 公司1 公司2 公司3 2012 42 52 62 2013 12 22 32     可使用sql2005之后提供的PIVOT   具体操作如下:   select  *  f

sql 行转列总结

原文:sql 行转列总结 PIVOT UNPIVOT的用法 PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 in (-) )AS P 完整语法: table_source PIVOT( 聚合函数(value_column) FOR pivot_column IN(<column_list>) ) UNPIVOT用于将列明转为列值(即列转行),在SQL Server 2

SQL行转列汇总

原文:SQL行转列汇总 PIVOT 用于将列值旋转为列名(即行转列),在 SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT 的一般语法是:PIVOT(聚合函数(列) FOR 列 in (-) )AS P 注意:PIVOT.UNPIVOT是SQL Server 2005 的语法,使用需修改数据库兼容级别(在数据库属性->选项->兼容级别改为   90 ) SQL2008 中可以直接使用 完整语法: table_source PIVOT( 聚合函数(value_colu

数据库行转列-SQL行转列的问题,求各位大大帮助下

问题描述 SQL行转列的问题,求各位大大帮助下 数据库中保存的是: 单据类型 审核级次 审核人 A 1级 张三 A 1级 李四 A 2级 王五 求查出的数据为: 单据类型 1级审核人 2级审核人 A 张三 王五 A 李四 该如何写代码啊,小白求助!!

sql行转列,(不写死)

问题描述 sql行转列,(不写死) 图一为数据结果: 想要图二的效果: 要求:不写死即不出现具体的查询出的数据的内容 解决方案 这个我没怎么搞过,不过你可以参照这个试一试.http://www.williamsang.com/archives/1508.html 解决方案二: 说实话不太明白你的意思. 行转列.你不规定列名.后台怎么知道把哪列转换成一行? 如果你想隐蔽的话.可以先用视图再用行转列 解决方案三: 不写死,只能用存储过程 或者 code 实现!单SQL应该是比较难!

SQL行转列

SQL行转列是比较经典的问题: 比如有如下数据表,有如下某一款号(表1):    颜色  尺码  库存     红色    S    10    红色    M    80    白色    L    50    白色    S    60 要将上面的表转化为如下格式(表2):  颜色    S  M  L  红色  10  80  0   白色  60  0  50   动态sql: create  table #tbl_0 (    color nvarchar(12),    nsize

重温SQL——行转列,列转行

行转列,列转行是我们在开发过程中经常碰到的问题.行转列一般通过CASE WHEN 语句来实现,也可以通过 SQL SERVER 2005 新增的运算符PIVOT来实现.用传统的方法,比较好理解.层次清晰,而且比较习惯. 但是PIVOT .UNPIVOT提供的语法比一系列复杂的SELECT...CASE 语句中所指定的语法更简单.更具可读性.下面我们通过几个简单的例子来介绍一下列转行.行转列问题. 我们首先先通过一个老生常谈的例子,学生成绩表(下面简化了些)来形象了解下行转列  CREATE TA