sql - SQL Server:从链接到另一个表的 ID 列动态创建列
问题描述
我正在尝试根据链接到另一个表的列名的 ID 动态创建列。(我不知道这是否可能用于网页上的 ssrs 报告和网格视图。)
看看下面的例子——“当前表”是它现在的样子。我对每个名字都有一个专栏。我已经创建了定义表。我想让当前表看起来像建议的表,并“创建”选择中的列或使用定义表的名称,使其看起来像现在一样。
解决方案
这是一种在不实际使用动态 SQL 的情况下“动态”取消数据透视的方法。
显然 Gordon 的性能会更好,但在这里,您不必声明列。
例子
Select D.id
,[count] = C.Value
,A.ts
From CurrentTable A
Cross Apply ( values (cast((Select A.* for XML RAW) as xml))) B(XMLData)
Cross Apply (
Select Item = a.value('local-name(.)','varchar(100)')
,Value = a.value('.','int') -- Use appropriate type
From B.XMLData.nodes('/row') as C1(n)
Cross Apply C1.n.nodes('./@*') as C2(a)
Where a.value('local-name(.)','varchar(100)') not in ('ts','OtherColToExclude')
) C
Join definition D on C.item=D.Name
退货
id count ts
1 5 2018-12-06
2 88 2018-11-01
2 18 2018-10-18
3 32 2018-10-27
4 6 2018-10-27
推荐阅读
- bash - 在解析操作系统路径的 bash 脚本中动态分配变量
- sql - 将查询结果导出到 Json
- sql - 如何根据特殊字符从行中提取值
- java - 如何在spring boot中反序列化数组对象
- javascript - 创建依赖的 extjs 网格
- python - 将 json 写入 MYSQL 数据库时 SQL 语法中的 PYTHON 错误
- php - 在wordpress中自动完成数据库中的输入字段
- r - 在 R 中使用 ggplot2 绘制 HUC 流域边界
- javascript - 如何正确使用从父组件继承的数据?
- django - html 模板中的 Django 按钮创建了我无法解决的错误