如何将多个列“内爆”(去规范化/连接)为单个列?

2023-11-25

我有一个查询,输出如下:

+-------+----+--------------+
| F_KEY | EV | OTHER_COLUMN |
+-------+----+--------------+
| 100   | 1  | ...          |
| 100   | 2  | ...          |
| 150   | 2  | ...          |
| 100   | 3  | ...          |
| 150   | 4  | ...          |
+-------+----+--------------+

我确信我已经看到了一个聚合函数可以将其转变为(使用GROUP BY F_KEY)变成这样的东西:

+-------+------------+--------------+
| F_KEY | ?          | OTHER_COLUMN |
+-------+------------+--------------+
| 100   | (1, 2, 3)  | ...          |
| 150   | (2, 4)     | ...          |
+-------+------------+--------------+

意味着,它以某种方式“内爆”了EV一起形成一个单一的领域。我怎样才能做到这一点?不幸的是,我不记得该函数的名称。

我正在使用 SQL Server。

这是我的查询的简化:

SELECT
    F_KEY,
    EV,
    OTHER_COLUMN
FROM
    TABLE1
JOIN
    TABLE2 ON F_KEY = TABLE2.ID
WHERE
    EVENT_TIME BETWEEN '2011-01-01 00:00:00.000' AND '2011-12-31 23:59:59.999'
ORDER BY
    EVENT_TIME ASC

任何想法表示赞赏!


这是最好的连接方法,它不会像其他 XML 方法那样扩展特殊字符:

--Concatenation with FOR XML & eliminating control/encoded char expansion "& < >"
set nocount on;
declare @YourTable table (RowID int, HeaderValue int, ChildValue varchar(5))
insert into @YourTable VALUES (1,1,'CCC')
insert into @YourTable VALUES (2,2,'B<&>B')
insert into @YourTable VALUES (3,2,'AAA')
insert into @YourTable VALUES (4,3,'<br>')
insert into @YourTable VALUES (5,3,'A & Z')
set nocount off
SELECT
    t1.HeaderValue
        ,STUFF(
                   (SELECT
                        ', ' + t2.ChildValue
                        FROM @YourTable t2
                        WHERE t1.HeaderValue=t2.HeaderValue
                        ORDER BY t2.ChildValue
                        FOR XML PATH(''), TYPE
                   ).value('.','varchar(max)')
                   ,1,2, ''
              ) AS ChildValues
    FROM @YourTable t1
    GROUP BY t1.HeaderValue

OUTPUT:

HeaderValue ChildValues
----------- ---------------
1           CCC
2           AAA, B<&>B
3           <br>, A & Z

(3 row(s) affected)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将多个列“内爆”(去规范化/连接)为单个列? 的相关文章

  • 将 5 gig 文件导入表时出错

    我正在尝试批量插入表 use SalesDWH go BULK INSERT dbo npi FROM S tmp npi csv WITH FIELDTERMINATOR ROWTERMINATOR n lastrow 200 first
  • 在 Dockerfile 中切换到 root 用户

    我运行了这个命令 docker pull mcr microsoft com mssql server 2019 latest 然后我创建了一个 dockerfile 来使用此容器映像作为另一个容器的基础映像 escape FROM mcr
  • 数据库设计1对1关系

    我的数据库设计不正确 我应该在开发过程中解决这个问题吗 假定 user 表与 userprofile 表具有 1 1 关系 然而 实际设计中 用户 表与 用户配置文件 表具有 1 关系 一切正常 但无论如何应该修复它吗 做一件事 User
  • SQL Server 全文的自定义断字器

    有谁知道如何为 SQL Server 2005 创建自定义分词系统 我更喜欢用 C 编写它 我需要能够搜索 c f 等术语 但 字符是英语 英国 分词器组件中的分词器 不能以任何其他方式更改 我发现以下文章提供了不完整的示例 缺少 IWor
  • 如何使用索引更改表的列?

    我想将带有某些索引的表中 a 列的列大小从 varchar 200 更改为 varchar 8000 我应该如何进行 既然是VARCHAR你正在增加尺寸 然后简单地ALTER TABLE ALTER COLUMN https learn m
  • 使用 dtexec 运行 SSIS 包

    我正在使用 dtexec 运行 SSIS 包 该软件包在我的系统上的 BIDS 中运行良好 当我创建 SQL Server 代理作业以按计划运行包时 包运行步骤被安排为 T SQL 任务 而不是 SSIS 包 该作业没有报告错误 但它甚至没
  • javascript Array.prototype.push 如何连接

    我已经看到数组的 push 方法用于替换串联 但我不完全确定它是如何工作的 var a 1 2 3 var b 4 5 6 Array prototype push apply a b 它如何就地连接而不是返回一个新数组 apply htt
  • 自定义 Sql Server 对象资源管理器右键单击菜单项

    如何在 Sql Server 2012 的对象资源管理器中添加或自定义右键菜单项 例如 我想将新项目添加到表右键菜单中以生成自定义表创建器脚本 您可以编写一个 SSMS 加载项 See http sqlblogcasts com blogs
  • 有没有适用于 Eclipse 的 SQL 格式化插件?

    我在网上没有找到任何标准的开源 sql 格式化程序 eclipse 插件 我正在使用日食太阳神 我可以找到编辑 gt 格式化SQL但这似乎不起作用 找到一个在http ventralnet blogspot in 2010 11 sql b
  • 有什么办法可以将2个数组添加到一个数组中吗?

    有没有一种简单通用的方法可以将两个数组添加到一个数组中 在下面的情况下 不可能简单地使用C A B陈述 我想避免每次都为它制定算法 TPerson record Birthday Tdate Name Surname string end
  • SQL Server 'FETCH FIRST 1 ROWS ONLY' 无效使用

    我正在尝试将 Db2 查询转换为 SQL Server 我遇到了一个我不熟悉的构造 仅 FETCH FIRST 1 ROWS 这是在 db2 上运行的查询 select from products series where state xx
  • SQL Server 文本数据类型最大长度 = 65,535?

    我正在使用的软件使用文本字段来存储 XML 根据我的在线搜索 文本数据类型应该包含 2 31 1 个字符 目前 SQL Server 每次都会将 XML 截断为 65 535 个字符 我知道这是由 SQL Server 引起的 因为如果我直
  • SQL Server 2008中与其他列的排序树

    我有一个使用它实现树的表层次结构ID column 样本数据 People Girls 1 Zoey 1 1 Kate 1 2 Monica 1 3 Boys 2 Mark 2 1 David 2 2 这是使用的顺序层次结构ID列作为排序列
  • 嵌套 linq 查询上的“列名 [ColumnName] 无效”

    最后更新 经过大量测试后 我意识到 如果我对 SQL 2000 和 SQL 2005 上的同一数据集 在本例中为 Northwind 表运行相同的查询 我会得到两个不同的结果 在 SQL 2000 上 我收到问题中的错误 在 SQL 200
  • 服务器未配置 RPC

    查找我的工作历史 发现以下错误 06 18 2018 00 00 01 MBS Lojas ExportaMR OutrasLojas Error 1 WIN VRT 01 SQL2008 MBS Lojas ExportaMR Outra
  • 如何确定给定的表是否是内存优化的?

    早上好 我的第一个问题是如何确定在 MS SQL Server 中创建的表是否是内存优化的 我有一些表 但我不记得我创建的其中一些表是否经过内存优化 非常感谢您的回答 为了重复这里的另一个答案 这是一种获取状态的方法all数据库中的表 se
  • SQL Server 与 Oracle DBMS_METADATA.GET_DDL 并行吗?

    我正在寻找命令行或脚本化解决方案来从 SQL Server 2005 中为所有数据库对象提取 DDL 表 存储过程 视图 索引 索引 约束等 GUI 工具不感兴趣 优先选择内置工具 因为它最能与 Oracle 的 DBMS METADATA
  • 使用实用程序批量复制将所有表从 SQL Server 数据库导出到文件中

    我想将数据库中的所有表 bcp 到文件中 SELECT EXEC xp cmdshell bcp bcp QUOTENAME DB NAME database name QUOTENAME SCHEMA NAME SCHEMA ID sch
  • 连接到 SQL Server 数据库 C#-WinForms

    我正在制作一个桌面应用程序 我希望用户必须登录才能充分使用该程序 我已经在 www winhost com 我的网站的托管位置 上创建了一个数据库 但现在我不知道该怎么办 我一直在使用 google 和 msdn 我想知道如何以编程方式将新
  • SQL Server 查看主键

    有没有办法在 sql server 中为视图提供主键 我知道在oracle中这是可能的 我不关心更新它的只读视图 但其他人正在 ms access 中使用它 所以我希望显示我知道正确的约束 是的 您可以创建一个索引视图 http msdn

随机推荐

  • 使用arm-linux-androideabi-gcc编译对象时出现问题

    背景 OSX 是操作系统 R8 NDK 我正在尝试使用 Android GCC 编译器编译以下类 include
  • 在 Pyramid 中,如何根据上下文内容使用不同的渲染器?

    我有 3 种不同的产品页面布局 我想根据有关产品的可用信息来显示它们 使用遍历我有一个名为ProductFinder获取所有信息 例如 用户转到domain green small 并ProductFinder将列出我的数据库中所有绿色和小
  • lua脚本错误检查

    是否可以在不执行lua脚本的情况下检查它是否包含错误 我有以下代码 if luaL loadbuffer L data size name fprintf stderr s lua tostring L 1 lua pop L 1 if l
  • 在 Kivy 中从内存加载图像

    我内存中有一张图片格式 从pyplot输出 我想通过Kivy直接在Android上显示它 但我不想创建图片文件 有什么办法可以做到这一点吗 在 pyplot 上 我可以通过编写对象来生成类似对象的文件 但我不知道如何将其放入 Kivy 中
  • 在策略定义中返回响应时如何使用变量?

    我正在 Azure API 管理的实例中配置入站策略 首先 我设置一个变量
  • 在哪里可以找到有关 XSLT 文件的优秀教程? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我正在编写两种 XML 文件类型之间的翻译 并且想知道在哪里可以找到有关此过程的一些好的教程 Thanks 教程 Update 我很高兴添加这个最新的 XSLT 教程 XSLT 2
  • jqGrid过滤记录

    似乎这里有一些关于这个主题的问题 他们有一些很好的答案 但我的情况似乎有点不同 我需要过滤 jqGrid 中显示的记录 但完全是在客户端 由于多种原因 填充网格的最佳方法是使用直接发送到页面上的 JavaScript 中的数组 网格本身根本
  • 我可以在客户端更改页面的 HTML 状态代码吗?

    我有一个静态 HTML 网页 我想将其状态代码设置为404 未找到 但是 我想使用 javascript 或 jQuery 而不是任何服务器端语言来完成此操作 我如何在客户端上执行此操作 使用 javascript 或者也许 tag 无法使
  • 使用 PDO 清理 MySQL 中输入的正确方法

    所以我有一个朋友尝试在我的网站上运行 SQL 注入 他成功地使用下面的代码进入了它 我怎样才能防止这种情况发生 我读过一些有关清理变量的内容 但我该如何做到这一点 INSERT INTO 登录 用户名 密码 VALUES Gjertsmel
  • 如何在Retrofit Android的请求正文中传递带有空值或空字符串的键

    即使没有值 我也需要传递密钥 因为密钥在服务器端是强制性的 但 Retrofit 在发送请求时删除了具有空值的键 如何使用 Retrofit 向服务器发送没有值的密钥 请求正文如下所示 first name testlogin last n
  • HttpSession 超时后重定向

    我一直在查看有关此主题的许多帖子 但无法找到适合我的情况的解决方案 我正在使用 Java EE 6 和 JSF 2 0 部署在 JBoss AS 7 1 上 In my web xml I have
  • Three.js Object3D.clone() 会创建几何体的深层副本吗?

    我正在使用 collada 加载器加载模型 加载器返回一个带有许多子网格的 Object3D dae 我想多次实例化父 dae 对象而不复制网格 我可以只使用 dae clone 吗 换句话说 我想制作浅拷贝 它们都有自己的变换矩阵但共享相
  • Http 请求 - 绕过 DNS [.Net]

    在执行 HTTP 请求时是否可以 如果是 如何 绕过 DNS 我想使用 HTTP 请求直接访问前端 而不通过 NLB 但使用正确的主机标头 由于我有服务器的 IP 因此我只需要绕过 DNS 我尝试使用 WebRequest 用 IP 替换
  • gnuplot 中的平滑峰值

    我在点 x i 处有数据点 f x i 函数 f 未知 仅在数值上 且 f 0 0 数据显示在小 x 处有一个峰状结构 随后在较大 x 处出现缓慢的肩部衰减 设置在最大值的一半处 我想通过这些数据点绘制平滑线 如果我使用贝塞尔曲线 那么 f
  • 为什么 Google HTTPS -> HTTP 的 Referer 标头没有被删除?

    客户不应该包括Referer如果引用页面是使用安全协议传输的 则 非安全 HTTP 请求中的标头字段 https www rfc editor org rfc rfc2616 section 15 1 3 根据标准 https google
  • 从Linux内核访问物理内存

    我们可以通过一些内核代码访问任何物理内存吗 因为 我编写了一个只有 init module 和 exit module 的设备驱动程序 代码如下 int init module void unsigned char p unsigned c
  • Font Awesome 在 Firefox 和 IE 中不工作

    我遇到了 WordPress 网站中包含的很棒的字体问题 在 Firefox 和 IE 中 图标根本不会显示 但在 Chrome 和 Safari 中它工作正常 我找到了 解决方案 说我需要一个包含某些内容的 htaccess 来为这些浏览
  • 字典列表到xlwt

    我有一个清单字典我想使用它将其转换为Excelxlwt 我是 xlwt 的新手 你能帮助我吗 我使用它作为接收 dict 列表并将其转换为 excel 然后返回的函数 我有这个字典列表 id u 1 name u Jeff id u 2 n
  • 有没有办法在 Tkinter 中使用功能区工具栏?

    我还没有决定我的下一个项目使用什么语言和工具 我喜欢使用 python 但我想实现功能区工具栏 Tk 中已经完成了一些工作 http www ellogon org petasis bibliography Tcl2010 TkRibbon
  • 如何将多个列“内爆”(去规范化/连接)为单个列?

    我有一个查询 输出如下 F KEY EV OTHER COLUMN 100 1 100 2 150 2 100 3 150 4 我确信我已经看到了一个聚合函数可以将其转变为 使用GROUP BY F KEY 变成这样的东西