将一组行转换为SQL Server 2000中的列

Cod*_*yer 8 sql-server pivot

是否有任何工具将行转换为SQL Server中的列(在MS-Access中可以)?我被迷惑了,因为这个工具在MS-Access中可用,但在SQL Server中不可用.设计是否已将此功能包含在SQL Server中?

Cor*_*ger 3

仅当您事先知道行值是什么时,http://jdixon.dotnetdevelopersjournal.com/pivot_table_data_in_sql_server_2000_and_2005.htm中的示例才有效。例如,假设您有一个具有自定义属性的实体,并且自定义属性作为子表中的行实现,其中子表基本上是变量/值对,并且这些变量/值对是可配置的。

color red
size  big
city  Chicago
Run Code Online (Sandbox Code Playgroud)

我将描述一种有效的技术。我用过。我不是在宣传它,但它确实有效。

要在您事先不知道值是什么的情况下对数据进行透视,请动态创建一个不带列的临时表。然后使用光标循环遍历行,为每个变量发出动态构建的“更改表”,以便最终您的临时表具有列、颜色、大小、城市。

然后,您在临时表中插入一行,通过另一个游标通过变量、值对更新它,然后选择它,通常与其父实体连接,实际上使这些自定义变量/值对看起来像内置的-在原始父实体的列中。