为了说明,假设我有两个表如下:
VehicleID Name
1 Chuck
2 Larry
LocationID VehicleID City
1 1 New York
2 1 Seattle
3 1 Vancouver
4 2 Los Angeles
5 2 Houston
Run Code Online (Sandbox Code Playgroud)
我想写一个查询来返回以下结果:
VehicleID Name Locations
1 Chuck New York, Seattle, Vancouver
2 Larry Los Angeles, Houston
Run Code Online (Sandbox Code Playgroud)
我知道这可以使用服务器端游标完成,即:
DECLARE @VehicleID int
DECLARE @VehicleName varchar(100)
DECLARE @LocationCity varchar(100)
DECLARE @Locations varchar(4000)
DECLARE @Results TABLE
(
VehicleID int
Name varchar(100)
Locations varchar(4000)
)
DECLARE VehiclesCursor CURSOR FOR
SELECT
[VehicleID]
, [Name]
FROM [Vehicles]
OPEN VehiclesCursor
FETCH NEXT …Run Code Online (Sandbox Code Playgroud) 试图找到一些简单的SQL Server PIVOT示例.我发现的大多数例子都涉及计算或总结数字.我只想转动一些字符串数据.例如,我有一个返回以下内容的查询.
Action1 VIEW
Action1 EDIT
Action2 VIEW
Action3 VIEW
Action3 EDIT
Run Code Online (Sandbox Code Playgroud)
我想使用PIVOT(如果可能的话)来产生如下结果:
Action1 VIEW EDIT
Action2 VIEW NULL
Action3 VIEW EDIT
Run Code Online (Sandbox Code Playgroud)
PIVOT功能可以实现这一点吗?
我正在处理一组类似于以下内容的数据.
Run Code Online (Sandbox Code Playgroud)StudentName | AssignmentName | Grade --------------------------------------- StudentA | Assignment 1 | 100 StudentA | Assignment 2 | 80 StudentA | Total | 180 StudentB | Assignment 1 | 100 StudentB | Assignment 2 | 80 StudentB | Assignment 3 | 100 StudentB | Total | 280
作业的名称和数量是动态的,我需要将结果与以下内容相似.
Run Code Online (Sandbox Code Playgroud)Student | Assignment 1 | Assignment 2 | Assignment 3 | Total -------------------------------------------------------------------- Student A | 100 | 80 | null | 180 Student B | 100 | 80 | 100 | …
假设我在SQL Server 2008表或[table] -typed变量中有一些数据:
author_id review_id question_id answer_id
88540 99001 1 719
88540 99001 2 720
88540 99001 3 721
88540 99001 4 722
88540 99001 5 723
36414 24336 1 302
36414 24336 2 303
36414 24336 3 304
36414 24336 4 305
36414 24336 5 306
Run Code Online (Sandbox Code Playgroud)
我想检索数据作为结果集,如下所示:
author_id review_id 1 2 3 4 5
88540 99001 719 720 721 722 723
36414 24336 302 303 304 305 306
Run Code Online (Sandbox Code Playgroud)
我怀疑PIVOT操作符是我需要的(根据这篇文章,无论如何),但我无法弄清楚如何开始,特别是当表中的question_id行数可以变化时.在上面的示例中,它是5,但在另一个查询中,该表可能会填充7个不同的问题.
人们喜欢得到不同种类和数量的水果,我想帮助他们.我有一个看起来像这样的表:
name fruit count temp
-----------------------------
Jim apple 3 hot
Jim banana 7 cold
Jim orange 12 cold
Sam plum 5 hot
Sam peach 1 hot
Bob cherry 4 cold
Bob banana 11 hot
Bob orange 9 cold
Bob kiwi 6 hot
Run Code Online (Sandbox Code Playgroud)
每个人可能有1或1000行,我不知道提前了多少,所以我认为这需要动态列列表.我需要它看起来像这样:
name fruit_1 count_1 temp_1 fruit_2 count_2 temp_2 fruit_3 count_3 temp_3 fruit_4 count_4 temp_4
-------------------------------------------------------------------------------------------------------
Jim apple 3 hot banana 7 cold orange 12 cold null null null
Sam plum 5 hot peach 1 hot null null null …Run Code Online (Sandbox Code Playgroud)