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)
这可能吗?如果是这样,怎么样?更多详情:
列数和列名称是固定的,可以进行硬编码
行数不固定
你可以使用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数据库