我数据库里有张Employee表:
ID FirstName LastName
1 san zhang
2 si li
3 wu wang
我现在想把行和列转换一下
转换之后就是这样:
ID 1 2 3
FirstName san si wu
LastName zhang li wang
我现在的做法是:
在store prodcedure里面,建立一个tmp table,这个table用dynamic sql来生成columns。有一个employee,就要一个column。如果有1万个employee,就要有1万个columns。
然后再一个一个地往这个tmp table里面填数据
这种做法问题不少,最大的问题就是performance
我想知道有什么更简单的方法。也许根本不需要在store procedure里来做,也许.net sql report自己就能变。
又或者sql 2008里面有什么function能够做到pivot之类的
有谁知道能赐教下吗,万分感谢
问题补充:liveHappy 写道
sqlserver的行转列 很常见的问题,随便在网上一收就有很多,自己去尝试做。
我是搜了好多呀,可是我搜到的基本上还都是用存储过程的,没看到特别的呀
问题补充:我想寻找不用povit的方法?谁能给点指点啊
相关推荐
### SQL Server 行列转换知识点解析 #### 一、行列转换概述 在处理数据库查询时,我们经常会遇到需要将表中的行数据转换为列数据的需求,这种操作通常被称为“行列转换”。例如,当我们需要汇总不同类别的数据并将...
### Oracle SQLServer 行列转换知识点详解 #### 一、SQLServer 行转列方法 在SQLServer中,实现行转列的操作有两种主要方法:一种是利用`CASE...WHEN`语句配合`GROUP BY`聚合函数的方式;另一种是通过`PIVOT`操作...
在SQL Server中,进行行列转换是数据库操作中常见的需求,尤其是在数据分析和报表展示时。这种转换通常涉及到将一列的数据转化为多列,或者相反。在提供的文档中,讨论的是如何将具有多个号码的同一地址数据转换成每...
### SQL 2008 行列转换 (Pivot) 的动态实现 #### 知识点一:行列转换(Pivot)的概念与应用场景 在数据库查询中,有时我们需要将数据表中的行转换为列,或者将列转换为行,这种操作被称为行列转换。行列转换在报表...
在SQL Server中,行列互转是一种常见的数据处理需求,它能帮助我们以更直观的方式展示数据。本篇文章将深入探讨如何使用聚合函数Pivot和Unpivot来实现这一目标,特别是针对SQL Server数据库。 首先,让我们了解什么...
sqlserver 动态行专列 避免了数据列过多的时候大量的使用case when then...... 原数据 : UserName Subject Score Nick 语文 80 Nick 数学 90 Nick 英语 70 Nick 生物 85 Kent 语文 80 Kent 数学 90 Kent ...
如果你想要将多个公司的某个产品组合成一列显示,例如将所有公司的`SqlServer2005`产品数量放在同一列,可以使用Pivot操作。Pivot是SQL Server中的一个功能,用于将行转换为列。在这个例子中,我们可以先通过JOIN...
### SQL Server 2005+ 版本行列转换数据脚本知识点解析 #### 一、数据表创建脚本分析 根据题目中的信息,我们首先关注到的是一个名为`dduser`的数据表创建脚本。该脚本是在SQL Server 2005及以上版本中使用的。...
1. **SQL Server中的行列转换**:介绍如何在SQL Server环境中利用内置函数实现数据从行到列的转换。 2. **FOR XML PATH() 函数的应用**:详细解释FOR XML PATH()函数在行列转换中的作用及其实现方法。 3. **动态SQL...
本篇文章将详细解释如何通过一条SQL查询语句实现行列转换,并且会针对两种不同的SQL Server版本(SQL Server 2000和SQL Server 2005)来探讨具体的实现方法。 ### 数据准备 首先,我们需要构建一个简单的数据表...
"经典SQL Server操作脚本"这个主题涵盖了一系列实用的技巧和方法,包括处理日期、字符、排序以及行列转换等方面的知识。这些脚本通常经过实战检验,能够帮助数据库管理员和开发者更高效地完成日常工作。 1. **日期...
在SQL中,行列转换是一种常见的数据操作,尤其在数据分析和报表生成时尤为关键。动态添加列则是在查询过程中根据特定条件或数据集自动生成列,这在处理不断变化的数据结构时非常有用。以下是对这些主题的详细解释: ...
Pivot 和 UnPivot 是 SQL Server 2005 中引入的两个语法,用于实现行列转换。 Pivot Pivot 语法的主要作用是将列值旋转为列名,即行转列。其基本语法为: ``` SELECT * FROM table_source PIVOT (聚合函数(value_...
透视查询(PIVOT)和行列转换也是重要的内容,它们能够将数据从行转换为列或反之,以满足特定的报表需求。 窗口函数(Window Functions)是SQL Server 2005中的一个重要特性,它们允许我们在每个结果行上执行计算,...
在SQL Server 2005中,处理数据时有时需要对聚合记录集进行行列转换,以便更好地展示统计结果。本文主要讨论了如何将聚合记录集逆时针和顺时针旋转90度,这是数据分析和报表制作中常见的需求。 首先,我们看一个...
在SQL Server中,这通常需要使用到PIVOT(行列转换)和UNPIVOT(行列还原)操作来实现。 存储过程允许将创建动态交叉表的逻辑代码集中存储,并可以重复调用,提高了数据操作的灵活性和效率。实现动态交叉表的关键...
SQL Server提供了PIVOT和UNPIVOT操作,以及动态SQL,帮助用户在行和列之间灵活转换数据,适应不同的数据分析需求。 游标是遍历查询结果集的一种机制,允许逐行处理数据。虽然在某些情况下,游标可能导致性能下降,...