小编ede*_*zie的帖子

在Sql中转换列和行的简单方法?

如何在SQL中简单地使用行切换列?是否有任何简单的转置命令?

即转此结果:

        Paul  | John  | Tim  |  Eric
Red     1       5       1       3
Green   8       4       3       5
Blue    2       2       9       1
Run Code Online (Sandbox Code Playgroud)

进入这个:

        Red  | Green | Blue
Paul    1       8       2
John    5       4       2
Tim     1       3       9
Eric    3       5       1
Run Code Online (Sandbox Code Playgroud)

PIVOT 这种情况看起来太复杂了.

sql t-sql sql-server pivot

100
推荐指数
4
解决办法
50万
查看次数

转置/将不同的行属性转换为列,并将另一个属性分组?

可能重复:
SQL Server动态PIVOT查询?

是否可以对下表执行查询:

Game    Player  Goals
-----   ------  ------
Game1   John    1
Game1   Paul    0
Game1   Mark    2
Game1   Luke    1
Game2   John    3
Game2   Paul    1   
Game2   Luke    1
Game3   John    0
Game3   Mark    2
Run Code Online (Sandbox Code Playgroud)

结果如下:

Game    John    Paul    Mark    Luke
-----   ----    ----    ----    ----
Game1   1       0       2       1
Game2   3       1       -       1
Game3   0       -       2       -
Run Code Online (Sandbox Code Playgroud)

它将每个不同的玩家变成一列,并将游戏分组,从而为每个玩家每个游戏提供目标。

sql sql-server pivot

3
推荐指数
1
解决办法
1万
查看次数

在同一个表中的两列联盟

假设我在同一个表中有以下两列

Column 1
--------
1
2
3

Column 2
--------
4
5
6
Run Code Online (Sandbox Code Playgroud)

我如何得到一个给我的结果:

Columns
--------
1
2
3
4
5
6
Run Code Online (Sandbox Code Playgroud)

编辑

我真正想要的是确保没有更有效的方法在同一个表中的多个列上键入联合查询,而不必多次重复哪个表并多次重复每个联合的where条件.

实际查询看起来更像是这样的:

WITH T1 AS 
( SELECT [Col1] FROM [Table1] 
)
SELECT * FROM (
    SELECT [Cols1-100], COUNT(*) as "Count" FROM (

        SELECT [Col-1] FROM [Table2] AS [Cols1-100], [T1] 
        WHERE [Table2].[Col-1] = [T1].[Col-1] 
        AND [Col-1] != '2' AND [Col-2] != '2' ..... etc ..... AND [Col-100] != '2'
        UNION ALL

        SELECT [Col-2] FROM [Table2] AS [Cols1-100], [T1] …
Run Code Online (Sandbox Code Playgroud)

sql sql-server

2
推荐指数
1
解决办法
3万
查看次数

标签 统计

sql ×3

sql-server ×3

pivot ×2

t-sql ×1