Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在sql server 2008r2中将行名称更改为列名_Sql_Asp.net_Sql Server_Xtrareport - Fatal编程技术网

如何在sql server 2008r2中将行名称更改为列名

如何在sql server 2008r2中将行名称更改为列名,sql,asp.net,sql-server,xtrareport,Sql,Asp.net,Sql Server,Xtrareport,我很难在asp.net中使用存储过程作为绑定来制作XtraCharts线图(XY图) 我想通过R250,R500,R1000,R2000行生成X值 和Yvalue是已经存储在上面每一行中的数据 我有这样一个原始表: ======================================================== No | Sequence No | ItemId | R250 | R500 | R1000 | R2000 =============================

我很难在asp.net中使用存储过程作为绑定来制作XtraCharts线图(XY图)

我想通过
R250
R500
R1000
R2000
行生成
X
值 和
Y
value是已经存储在上面每一行中的数据

我有这样一个原始表:

========================================================
No | Sequence No | ItemId | R250 | R500 | R1000 | R2000
========================================================
1    001           118       23     13     14      24
我想把它显示在屏幕上

========================================================
No | Sequence No | ItemID | Value | NameX
========================================================
1    001            118      23     R250
1    001            118      13     R500
1    001            118      14     R1000
1    001            118      24     R2000

是否有任何可能的查询来实现这一点??非常感谢您。

您可以使用
apply
i专门用于此:

select t.No, t.[Sequence No], t.ItemID, tt.*
from table t cross apply
     ( values ([R250], 'R250'),
              ([R500], 'R500'),
              ([R1000],'R1000'),
              ([R2000],'R2000')
     ) tt (Value, NameX);

您可以使用
apply
Is专门用于以下用途:

select t.No, t.[Sequence No], t.ItemID, tt.*
from table t cross apply
     ( values ([R250], 'R250'),
              ([R500], 'R500'),
              ([R1000],'R1000'),
              ([R2000],'R2000')
     ) tt (Value, NameX);

您只需简单地
UNPIVOT
()

请尝试以下代码:

declare @tbl table (No int, SequenceNo varchar(3), ItemId int, R250 int, R500 int, R1000 int, R2000 int);
insert into @tbl values (1,'001', 118, 23, 13, 14, 24);

select * from (
    select * from @tbl
) p unpivot (
    [Value] for NameX in (R250, R500, R1000, R2000)
) as up;

您只需简单地
UNPIVOT
()

请尝试以下代码:

declare @tbl table (No int, SequenceNo varchar(3), ItemId int, R250 int, R500 int, R1000 int, R2000 int);
insert into @tbl values (1,'001', 118, 23, 13, 14, 24);

select * from (
    select * from @tbl
) p unpivot (
    [Value] for NameX in (R250, R500, R1000, R2000)
) as up;

它对我非常有效。谢谢你的回答,兄弟:)这对我来说非常有效。Thx用于回答bro:)