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

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(使用前将#替换为@)

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

  • SQLAlchemy/pandas to_sql for SQLServer -- 在主数据库中创建表

    使用 MSSQL 版本 2012 我使用 SQLAlchemy 和 pandas 在 Python 2 7 上 将行插入 SQL Server 表中 使用特定服务器字符串尝试 pymssql 和 pyodbc 后 我正在尝试 odbc 名称
  • 使用 SQL 序数位置表示法的好处?

    背景资料 序数位置表示法 又称序数 是基于列列表中的列顺序的列简写 SELECT子句 而不是列名或列别名 通常支持在ORDER BY子句 某些数据库 MySQL 3 23 PostgreSQL 8 0 支持语法GROUP BY条款也是如此
  • 如何在SQL Server中创建SYS模式的表?

    可以在 SQL Server 2008 sys 架构中创建表吗 我知道可以将表标记为系统 但不能更改架构 有什么窍门吗 您无法将自己的对象添加到 sys 架构中 无法在 sys 架构中创建用户定义的对象 盖尔 埃里克森 MS SQL Ser
  • 随机分配工作地点,每个地点不得超过指定员工人数

    我正在尝试在位置列表中选择唯一的随机发布 招聘员工位置 所有员工都已发布在这些位置 我正在尝试为他们生成一个新的随机发布位置 其 位置 条件为 员工新 随机位置将不等于他们的家乡 并且随机选择的员工及其职称必须小于或等于 地点 表中的 地点
  • 数百个别名/同义词与数据库表的完全限定名称

    考虑到多个模式中的数百个数据库表 在创建存储过程和视图时 您是否建议使用别名 同义词或完全限定名称 给定一些 schema table 像这样 Orders OrderHeader Production LineThroughput Sal
  • 捕获 SQL Server 时态表删除上的 SysEndTime

    是否可以使用 OUTPUT 关键字捕获 SysEndTime 时间时间戳 例如 DECLARE MyTableVar TABLE sysendtime datetime2 DELETE FROM dbo someTable OUTPUT D
  • CROSS APPLY 不适用于 SQL SERVER 2000?

    如何在 SQL Server 2000 中使用与 CROSS APPLY 等效的功能 我有一个函数返回传递的 id 的顶级父级 ALTER Function dbo fn GetTopParentRiskCategory RctId int
  • 需要 SQL Server 查询帮助

    我在视图中存储一堆数据 将 MS Access 查询转换为视图 现在我想做的是编写一个存储过程来根据添加数据的时间提取数据 这是我正在运行的查询 Select Name PlanID ApptDate 1stAppt rn from Sel
  • 一个存储过程创建的临时表可以在另一个存储过程中使用吗?

    我有一个存储过程 它使用找到的索引创建一个临时表CONTAINSTABLE就像 我放了一段存储过程代码 CREATE TABLE tmpTable ID INT RANK INT SELECT query SELECT DISTINCT I
  • Docker连接SQL Server容器非零代码:1

    我正在尝试从创建一个 SQL Server 容器docker compose yml但是当我运行它时 它直接停止并出现一些错误 注意 它运行在带有 docker Preview 的 Apple M1 芯片上 docker compose y
  • Id 或 [TableName]Id 作为主键/实体标识符

    是否首选使用 Id 作为主键的列名或 TableName Id 作为命名约定 表 账户主键 ID 相对 表 账户主键 AccountId 在我见过的实现中 它似乎分为 50 50 左右 每种方法的优点和缺点是什么 跟进 在我的数据库中使用一
  • 设置 xact_abort 并尝试一起捕获

    我的 sp 中有一个 try catch 块 其中只有一条插入语句 catch 检查错误代码是否违反 pk 如果是则进行更新 但有时我得到 当前事务无法提交 并且无法支持写入日志文件的操作 回滚事务 在批处理结束时检测到不可提交的事务 事务
  • 连接两个表的查询的 SQL Server“FOR XML”输出

    我是 SQL Server 中 FOR XML 功能的新手 我正在使用 SQL Server 2012 我有两个表 Word 和 Word Expansion 样本数据 表 字 WordOID Word 1 PIPE 2 WIRE 表 Wo
  • SQL Server 用分隔符分割字符串

    我有一个输入字符串 100 2 3 101 2 1 103 2 3 我想解析它并将其添加到具有 3 列的表中 因此它应该是 f x col1 col2 col3 100 2 3 类似的其他数据以逗号分隔作为记录和 作为列 Thanks ni
  • Scrapy - 如何抓取网站并将数据存储在 Microsoft SQL Server 数据库中?

    我正在尝试从我们公司创建的网站中提取内容 我在 MSSQL Server 中为 Scrapy 数据创建了一个表 我还设置了 Scrapy 并配置了 Python 来抓取和提取网页数据 我的问题是 如何将Scrapy爬取的数据导出到我本地的M
  • SQL Server,插入 Excel“链接服务器”时出现“无效列名”错误

    我有一个简单的 Excel 电子表格文档 运行 Office 2013 我使用 Microsoft Office 15 0 Access 数据库引擎 OLE DB 提供程序 将其用作数据库 我可以使用 MS SQL Server Manag
  • 存储过程和权限 - EXECUTE 就足够了吗?

    我有一个 SQL Server 2008 数据库 其中对基础表的所有访问都是通过存储过程完成的 一些存储过程只是从表中选择记录 而其他存储过程则进行 UPDATE INSERT 和 DELETE 如果存储过程更新表 执行存储过程的用户是否也
  • 列中差异的数量

    我想检索一列每行中有多少个字母的差异 例如 如果您有一个值 test 而另一行有一个值 testing 则 test 和 testing 之间的差异为 4 个字母 该列的数据值为 4 I have reflected about it an
  • 在 SQL 数据库中存储“列表”的最正确方法是什么?

    因此 我读了很多关于如何将多个值存储到一个列中是一个坏主意 并且违反了数据标准化的第一条规则 令人惊讶的是 这不是 不要谈论数据标准化 所以我需要一些帮助 目前我正在为我工 作的地方设计一个 ASP NET 网页 我想根据此人所属的 Act
  • Spark.read 在 Databricks 中给出 KrbException

    我正在尝试从 databricks 笔记本连接到 SQL 数据库 以下是我的代码 jdbcDF spark read format com microsoft sqlserver jdbc spark option url jdbc sql

随机推荐

  • 使用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 变成这样的东西