sql - 查询转换表中的SQL

标签 sql sql-server sql-server-2008

我的查询如下

SELECT SupplierId,StakeholderSupplierId,Percentage
FROM std_Stakeholders    
ORDER BY SupplierId


这给我的结果如下

SupplierId        StakeholderSupplierId             Percentage
1                          3175                        68.00
2929                       5504                        25.00
5504                        1                          68.25
5504                       3238                        50.00
5504                       2810                        23.00


我想将此输出转换为。

  SupplierId    StakeholderSupplierId1  Percentage  StakeholderSupplierId2  Percentage StakeholderSupplierId3   Percentage
    1                    3175            68.00  
    2929                 5504            25.00
    5504                  1              68.68             3238                50.00                2810            23.00


我尝试了join和pivot。无法成功编写适当的查询以获得所需的输出。谁能帮我吗

注意:StakeholderSupplierId不是静态的。它可能从1到n

最佳答案

我不知道这是否可以解决您的问题(取决于此查询后您需要执行的操作),但是对于此类问题,我使用了MySQL GROUP_CONCAT函数。对于SQL Server中的类似解决方案,请检查this问题。

使用GROUP_CONCAT函数,您可以得到如下结果表:

SupplierId    StakeholderSupplierIds  Percentages  
1             3175                    68.00  
2929          5504                    25.00
5504          1, 3238, 2810           68.68, 50.00, 23.00

关于sql - 查询转换表中的SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10039480/

相关文章:

java - 需要有关我自己的搜索引擎实现的基本 SQL 查询的帮助

sql - 在 '*' 中打印整数金额

sql - 带 IF 条件的 PL/SQL 游标

mysql - 用增量数字填充字段需要什么 MySQL 语句

sql-server - Microsoft.SqlServer.SqlTools.VSIntegration 引用问题/Visual Studio 2010 中的异常

sql - 使用存储过程/函数在 SQL Server 中实现堆栈 (LIFO)

sql - 将数据汇总到年份范围内

sql-server - SSIS 表达式中的拆分函数

asp.net-mvc-3 - 重定向到新页面后 session 变量为空

sql-server - MSTest 单元测试 (VS 2012) 与 SQL Server,间歇性主键冲突