在t-sql中获取行值作为列名

时间:2013-08-09 06:32:21

标签: sql sql-server tsql datagridview

我需要在数据网格视图中将行值显示为列名。我想使用sql select语句将商店名称放入列中。 (请参阅附图)。我希望用户在每列下输入一些值。所以STORE 1,STORE 2,STORE 3应该在datagrid视图中显示为列。有没有人可以帮助我完成这项工作?

enter image description here

谷歌搜索时发现这可以在SQL中使用PIVOT完成。但是在这个表中我没有任何聚合列。有任何帮助吗?

结果应该是这样的 enter image description here

2 个答案:

答案 0 :(得分:1)

您可能知道每个透视列的数据只包含一行,但SQL Server必须构建一个可以容纳多行的计划。

因此,使用PIVOT并使用一个聚合,如果传递一个值,将返回相同的值。 MIN()MAX()符合该说明(如果您正在处理数字数据,SUM也是如此)

答案 1 :(得分:-1)

您可以使用动态数据透视表的特定功能,并使用项目计数列传递您的查询。

您可以使用以下链接为您提供功能,并可以轻松显示您的预期输出。

http://forums.asp.net/t/1772644.aspx/1

程序名称:

[dbo].[dynamic_pivot]