sql - 需要通用转置脚本
问题描述
以下是特定交易 ID 的表格
TransactionId FirstName Lastname ContactNo ....
27 John A 123
27 Mark B 124
我需要像
TransactionId FirstName Lastname ContactNo FirstName Lastname ContactNo ....
27 John A 123 Mark B 124
解决方案
SELECT @col_list = Stuff((SELECT ',id = max(case when id = '
+ Cast(id AS VARCHAR(50))
+ ' then id end), mobilenumber = max(case when id = '
+ Cast(id AS VARCHAR(50))
+ ' then mobilenumber end)'
FROM [dbo].[TransactionContact] where transactionid in (137103,137102)
ORDER BY id
FOR xml path('')), 1, 1, '')
EXEC('select '+@col_list+' from [dbo].[TransactionContact]')
这按照上面的方法工作,但是为同一行而不是不同行中的所有 transactionid 带来了联系
推荐阅读
- terraform - azurerm_function_app 上的 Terraform use_msi
- flutter - 设置状态后flutter_webview_plugin监听器(onHttpError)不起作用
- python - 如何在 pre_ hooks 中修改 python eve 请求
- logging - 根记录器级别和控制台处理程序级别
- video - 如何在 UWP WebView 中配置视频/音频自动播放策略?
- asp.net-core - Swagger Resolver 错误,无法解析参考:
- c++ - 在 Visual Studio Code 中,除了类之外,为什么它会自动创建“main::main 和 main::~main”?
- jira - 为泳道生成燃尽图
- azure - 如何在 Azure 中检查节点 js 错误
- list - 将一个元素添加到字典 ansible / jinja 列表中