SQL足够强大吗?

1 sql

我们的遗留应用程序以下列格式将数据导出到SQL表中

**Row#** | **Column#** | **Parameter** | **Value**
Run Code Online (Sandbox Code Playgroud)

例如

1 | 1 | Name  | Michael

1 | 2 | Age   | 30

1 | 3 | email | email@email.com

2 | 1 | Name  | Brian

2 | 2 | Age   | 45

2 | 3 | email | brian@email.com
Run Code Online (Sandbox Code Playgroud)

我只需要使用SQL,就可以返回这样的东西

**Name** | **Age** | **email**

Michael  |    30   | email@email.com

Brian    |    45   | brian@email.com
Run Code Online (Sandbox Code Playgroud)

这可能吗?如果是这样,怎么样?更多详情:

  • 列数和列名称是固定的,可以进行硬编码

  • 行数不固定

Dam*_*ver 5

你可以使用PIVOT,或只是聚合的一些乐趣:

SELECT
    Row#,
    MAX(CASE WHEN Parameter='Name' THEN Value END) as Name,
    MAX(CASE WHEN Parameter='Age' THEN Value END) as Age,
    MAX(CASE WHEN Parameter='email' THEN Value END) as Email
FROM
    Table
group by
    Row#
Run Code Online (Sandbox Code Playgroud)

确切的语法和使用的选项取决于您正在使用的SQL数据库