多行到单列

时间:2019-05-08 11:07:20

标签: sql-server

我有一张像这样的桌子:

id int not null,
colName varchar(50) not null,
info varchar(max)

样本数据:

id  colName    info

1   firstname  Mary
1   surname    Jones
2   firstname  John
2   surname    Smith
3   firstname  Bat
3   surname    Man

我希望能够创建一个视图(或其他视图),以便可以执行以下操作:

SELECT firstname
FROM viewOrSomething

对于上面的示例数据,将输出以下内容:

firstname

Mary
John
Bat

还有这个

SELECT surname, firstname
FROM viewOrSomething

对于上面的示例数据,将输出以下内容:

surname firstname

Jones   Mary
Smith   John
Man     Bat

可以做到吗?我该怎么办?

理想情况下,可以解决colName列中任意数量的不同值的解决方案,但如果这将我指向正确的方向,我将只解决两个。

Microsoft SQL Server 2012 (SP4-GDR) (KB4057116) - 11.0.7462.6 (X64) 
    Jan  5 2018 22:11:56 
    Copyright (c) Microsoft Corporation
    Standard Edition (64-bit) on Windows NT 6.3 <X64> (Build 9600: ) (Hypervisor)

编辑

给出的答案不能满足我的要求-这不是重复的问题,我已经看过这样的答案了,它们太死板了。他们不允许列名不是“ firstname”和“ surname”。除了固定数量的列,它们不允许其他内容。

也不要让我选择执行以下操作:

SELECT surname, firstname
FROM viewOrSomething

按照我的原始要求。

0 个答案:

没有答案