Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.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中使用pivot运算符无法获得所需的结果_Sql_Json_Sql Server_Pivot - Fatal编程技术网

在SQL Server中使用pivot运算符无法获得所需的结果

在SQL Server中使用pivot运算符无法获得所需的结果,sql,json,sql-server,pivot,Sql,Json,Sql Server,Pivot,我试图透视一个两列的表,但没有得到我想要的结果 以下是Employees表中的数据示例: DataPoint Populated name Ram email ram@gmail.com age 23 name Shyam email shyam23@gmail.com age 28 name John email john@gmail.com age 33 name Bob

我试图透视一个两列的表,但没有得到我想要的结果

以下是Employees表中的数据示例:

DataPoint  Populated
name       Ram
email      ram@gmail.com
age        23
name       Shyam
email      shyam23@gmail.com
age        28
name       John
email      john@gmail.com
age        33
name       Bob
email      bob32@gmail.com
age        41
以下是我想要的:

name   email                age
Ram    ram@gmail.com        23
Shyam  shyam23@gmail.com    28
John   john@gmail.com       33
Bob    bob32@gmail.com      41
这是我的密码:

;WITH NeedToPivot AS(
 SELECT *
 FROM Employees)

 SELECT *
 FROM NeedToPivot
 PIVOT(MAX(Populated) FOR DataPoint IN("name","email","age"))x
以下是它的回报:

name    email               age
Shyam   shyam23@gmail.com   28

根据肖恩·兰格的反馈,我在EmployeeId表中添加了一个EmployeeId列。pivot操作符现在理解了我想要的分组,查询返回的正是我想要的

Employees表现在如下所示:

EmployeeId    DataPoint  Populated
1              name       Ram
1              email      ram@gmail.com
1              age        23
2              name       Shyam
2              email      shyam23@gmail.com
2              age        28
3              name       John
3              email      john@gmail.com
3              age        33
4              name       Bob
4              email      bob32@gmail.com
4              age        41

根据肖恩·兰格的反馈,我在EmployeeId表中添加了一个EmployeeId列。pivot操作符现在理解了我想要的分组,查询返回的正是我想要的

Employees表现在如下所示:

EmployeeId    DataPoint  Populated
1              name       Ram
1              email      ram@gmail.com
1              age        23
2              name       Shyam
2              email      shyam23@gmail.com
2              age        28
3              name       John
3              email      john@gmail.com
3              age        33
4              name       Bob
4              email      bob32@gmail.com
4              age        41

您的数据中是否有某些内容可以指示给定行所属的“组”。你的代码运行正常,只是没有达到你想要的效果。你是否有一个员工ID,可以将电子邮件、姓名和年龄分组在一起?非常有用的输入,因为我刚刚使用pivot操作符。pivot操作符需要知道如何对数据进行分组是有意义的。是的,通常您会使用MAX(表示组的列)。您的数据中是否有某些内容指示给定行属于哪个“组”。你的代码运行正常,只是没有达到你想要的效果。你是否有一个员工ID,可以将电子邮件、姓名和年龄分组在一起?非常有用的输入,因为我刚刚使用pivot操作符。pivot操作符需要知道如何对数据进行分组,这是有意义的。是的,通常您会使用MAX(表示组的列)。