mysql - 需要交叉表 SQL 查询的帮助

标签 mysql sql sql-server-2005 sql-server-2008

这是源示例表:

    UserID  UserNameType    UserName
    1       First Name      FN1
    1       Last Name       LN1
    2       First Name      FN2
    2       Last Name       LN2
    3       First Name      FN3
    3       Last Name       LN3
    4       First Name      FN4
    4       Last Name       LN4

我想要一个 SQL 查询来显示我的结果,如下面给定的格式。

   
    UserID  FirstName   LastName
    1       FN1         LN1
    2       FN2         LN2
    3       FN3         LN3
    4       FN4         LN4

在这方面需要更多帮助...

Need Help

谢谢, 尤加尔

最佳答案

一个简单的交叉表方法(我个人更喜欢)是使用 group by operator with MAX(CASE WHEN...) 模式来控制交叉表字段。这很容易理解 IMO,也很容易扩展到更多领域。我不确定性能。

select
    UserID,
    max(case when usernametype='First Name' then username end) as FirstName,
    max(case when usernametype='Last Name' then username end) as LastName
from
    MyTable T
group by
    UserID

关于mysql - 需要交叉表 SQL 查询的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6426896/

相关文章:

mysql - 将 WordPress 传输到 zeus 服务器

mysql - 如何修复此查询连接查询?

mysql - 具有最大日期的 IN 子句的 LINQ 表达式

database - 从 .bak 文件还原 sql 数据库时出错

php - 是否可以使用下载属性强制下载?

php - 选择并插入mysql

sql - 配置 SQuirrel SQL Client 以适用于 DB2/AS400

mysql - Left Join with Where 子句返回空结果

SQL Server 2005 仅恢复一种架构

sql-server - 无法更新包含特殊字符的 varchar 列