Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.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更改我的数据结果_Sql_Sql Server_Tsql - Fatal编程技术网

从我的表SQL Server更改我的数据结果

从我的表SQL Server更改我的数据结果,sql,sql-server,tsql,Sql,Sql Server,Tsql,当我执行查询时,给我这样的结果,您可以使用PIVOT和UNPIVOT关系运算符将表值表达式更改为另一个表 Quarters Status1 Status2 Status3 Status4 Quarter1 NULL 1 NULL 1 Quarter3 NULL NULL NULL 1 Quarter4 NULL NULL NULL 2 Quater1 0 0 0 0 Q

当我执行查询时,给我这样的结果,您可以使用PIVOT和UNPIVOT关系运算符将表值表达式更改为另一个表

Quarters    Status1 Status2 Status3 Status4
Quarter1    NULL    1        NULL   1
Quarter3    NULL    NULL     NULL   1
Quarter4    NULL    NULL     NULL   2
Quater1      0       0        0     0
Quater2      0       0        0     0
Quater3      0       0        0     0
Quater4      0       0        0     0

来源:

这里有一个更具体的轴心

SELECT <<Columns>> 
FROM <<Tables>> 
PIVOT
 (
   AggregateFunction(<<ColumnToBeAggregated>>)
   FOR PivotColumn IN (<<PivotColumnValues>>)
 ) AS <<Alias>> 

REVERSE是完全不同的,它反转字符串的字符:REVERSE'Mystring'='gnirtsyM'。在这里,你要做的是旋转,先取消旋转,然后旋转。有100个bothnon SO的例子;您尝试了什么,为什么不起作用?我可以将空值更改为0吗?我正在使用此函数iSnULLcount*,0但不起作用@马可德巴拉,而不是选择*。。。可以指定列。请稍等片刻,编辑回答谢谢,先生,但我的意思是在表中显示所有四个季度,当状态为空时,显示状态值为0的量程。@marcodebala不清楚。也许如果你编辑你的问题,并提供一个小的数据样本和期望的结果。@marcodebala更新了答案。注意,我添加了一个UNION ALL。这将创建和零数据交叉点,还消除了对ISNULL的需要
Select *
 From  (
         Select Quarters = concat('Quarter',DATEPART(QUARTER,EndDate))
               ,Item     = [Name]
               ,Value    = count(*)
          From  TS
          Group By DATEPART(QUARTER,EndDate),[Name]
        Union All
        Select Quarters
              ,Item
              ,Value = 0
         From ( values ('Quarter1')
                      ,('Quarter2')
                      ,('Quarter3')
                      ,('Quarter4')
              ) A(Quarters)
         Cross Join ( Select distinct Item=[Name] from TS)  B
       ) src
 Pivot ( sum(Value) for Item in ([Status1],[Status2],[Status3],[Status4],[Status5],[Status6]) ) pvt