0 0

SqlServer 行列转换3

我数据库里有张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的方法?谁能给点指点啊
2010年9月08日 09:30

3个答案 按时间排序 按投票排序

0 0

采纳的答案

都08了当然是pivot了
http://msdn.microsoft.com/en-us/library/ms177410.aspx

2010年9月09日 07:53
0 0

前人已经有了解决方案,变通一下就可以了呗。看看别人的这样也少走弯路

2010年9月08日 10:52
0 0

sqlserver的行转列 很常见的问题,随便在网上一收就有很多,自己去尝试做。

2010年9月08日 10:51

相关推荐

    sql server 行列转换

    ### SQL Server 行列转换知识点解析 #### 一、行列转换概述 在处理数据库查询时,我们经常会遇到需要将表中的行数据转换为列数据的需求,这种操作通常被称为“行列转换”。例如,当我们需要汇总不同类别的数据并将...

    Oracle SQLServer行列转换

    ### Oracle SQLServer 行列转换知识点详解 #### 一、SQLServer 行转列方法 在SQLServer中,实现行转列的操作有两种主要方法:一种是利用`CASE...WHEN`语句配合`GROUP BY`聚合函数的方式;另一种是通过`PIVOT`操作...

    SQL 2008行列转换的pivot

    ### SQL 2008 行列转换 (Pivot) 的动态实现 #### 知识点一:行列转换(Pivot)的概念与应用场景 在数据库查询中,有时我们需要将数据表中的行转换为列,或者将列转换为行,这种操作被称为行列转换。行列转换在报表...

    SQLServer行列互转实现思路(聚合函数)

    在SQL Server中,行列互转是一种常见的数据处理需求,它能帮助我们以更直观的方式展示数据。本篇文章将深入探讨如何使用聚合函数Pivot和Unpivot来实现这一目标,特别是针对SQL Server数据库。 首先,让我们了解什么...

    sql server动态行转列.sql

    sqlserver 动态行专列 避免了数据列过多的时候大量的使用case when then...... 原数据 : UserName Subject Score Nick 语文 80 Nick 数学 90 Nick 英语 70 Nick 生物 85 Kent 语文 80 Kent 数学 90 Kent ...

    sqlserver2005 行列转换实现方法

    如果你想要将多个公司的某个产品组合成一列显示,例如将所有公司的`SqlServer2005`产品数量放在同一列,可以使用Pivot操作。Pivot是SQL Server中的一个功能,用于将行转换为列。在这个例子中,我们可以先通过JOIN...

    SQL SERVER 2005+ 版本行列转换数据脚本

    ### SQL Server 2005+ 版本行列转换数据脚本知识点解析 #### 一、数据表创建脚本分析 根据题目中的信息,我们首先关注到的是一个名为`dduser`的数据表创建脚本。该脚本是在SQL Server 2005及以上版本中使用的。...

    SQL 数据行列转换

    1. **SQL Server中的行列转换**:介绍如何在SQL Server环境中利用内置函数实现数据从行到列的转换。 2. **FOR XML PATH() 函数的应用**:详细解释FOR XML PATH()函数在行列转换中的作用及其实现方法。 3. **动态SQL...

    sql查询中行列转换

    本篇文章将详细解释如何通过一条SQL查询语句实现行列转换,并且会针对两种不同的SQL Server版本(SQL Server 2000和SQL Server 2005)来探讨具体的实现方法。 ### 数据准备 首先,我们需要构建一个简单的数据表...

    经典SQLServer操作脚本

    "经典SQL Server操作脚本"这个主题涵盖了一系列实用的技巧和方法,包括处理日期、字符、排序以及行列转换等方面的知识。这些脚本通常经过实战检验,能够帮助数据库管理员和开发者更高效地完成日常工作。 1. **日期...

    sql动态转换行列和字符的分割

    在SQL中,行列转换是一种常见的数据操作,尤其在数据分析和报表生成时尤为关键。动态添加列则是在查询过程中根据特定条件或数据集自动生成列,这在处理不断变化的数据结构时非常有用。以下是对这些主题的详细解释: ...

    SQL行列转换 Pivot UnPivot

    Pivot 和 UnPivot 是 SQL Server 2005 中引入的两个语法,用于实现行列转换。 Pivot Pivot 语法的主要作用是将列值旋转为列名,即行转列。其基本语法为: ``` SELECT * FROM table_source PIVOT (聚合函数(value_...

    Microsoft SQL Server 2005技术内幕全套(三):T-SQL查询.part1

    透视查询(PIVOT)和行列转换也是重要的内容,它们能够将数据从行转换为列或反之,以满足特定的报表需求。 窗口函数(Window Functions)是SQL Server 2005中的一个重要特性,它们允许我们在每个结果行上执行计算,...

    在Sql Server 数据库中利用存储过程实现动态交叉表

    在SQL Server中,这通常需要使用到PIVOT(行列转换)和UNPIVOT(行列还原)操作来实现。 存储过程允许将创建动态交叉表的逻辑代码集中存储,并可以重复调用,提高了数据操作的灵活性和效率。实现动态交叉表的关键...

    SQLServer能力提升

    SQL Server提供了PIVOT和UNPIVOT操作,以及动态SQL,帮助用户在行和列之间灵活转换数据,适应不同的数据分析需求。 游标是遍历查询结果集的一种机制,允许逐行处理数据。虽然在某些情况下,游标可能导致性能下降,...

    SQL2000 和 SQL2005 下 行列转换 示例 - freeliver54 - 博客园.pdf

    ### SQL2000 和 SQL2005 下行转列转换示例解析 #### 一、背景介绍 本文档提供了在SQL Server 2000和SQL Server 2005两个版本中进行行转列操作的具体示例。行转列是一种常见的数据处理方式,用于将表格中的行数据...

Global site tag (gtag.js) - Google Analytics