我可以用逗号将多行分隔为一列吗? [复制]

2023-11-28

我正在尝试将这样的内容合并到我的 SQL Server 数据库中:


[TicketID], [Person]
 T0001       Alice
 T0001       Bob
 T0002       Catherine
 T0002       Doug
 T0003       Elaine  

进入这个:


[TicketID], [People]
 T0001       Alice, Bob
 T0002       Catherine, Doug
 T0003       Elaine  

我需要在 SQL Server 和 Oracle 中执行此操作。

我已经找到这个函数了GROUP_CONCAT对于 MySQL 来说,这正是我所需要的,但 MySQL 不是这里的一个选项。

EDIT:试验台:

DECLARE @Tickets TABLE (
    [TicketID] char(5) NOT NULL,
    [Person] nvarchar(15) NOT NULL
)

INSERT INTO @Tickets VALUES
    ('T0001', 'Alice'),
    ('T0001', 'Bob'),
    ('T0002', 'Catherine'),
    ('T0002', 'Doug'),
    ('T0003', 'Elaine')

SELECT * FROM @Tickets

以下是适用于 SQL Server 2005+ 的解决方案:

SELECT t.TicketID,
       STUFF(ISNULL((SELECT ', ' + x.Person
                FROM @Tickets x
               WHERE x.TicketID = t.TicketID
            GROUP BY x.Person
             FOR XML PATH (''), TYPE).value('.','VARCHAR(max)'), ''), 1, 2, '') [No Preceeding Comma],
       ISNULL((SELECT ', ' + x.Person
                FROM @Tickets x
               WHERE x.TicketID = t.TicketID
            GROUP BY x.Person
             FOR XML PATH (''), TYPE).value('.','VARCHAR(max)'), '') [Preceeding Comma If Not Empty]
  FROM @Tickets t
GROUP BY t.TicketID

参考:

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

我可以用逗号将多行分隔为一列吗? [复制] 的相关文章

随机推荐

  • 无法在多风格应用程序中构建功能模块

    我在 Android Studio 3 1 1 上使用 Gradle 4 4 和 Gradle Android 插件 3 1 1 我有 2 种风格 a 和 b 由于以下错误 我无法构建我的项目 Cannot choose between t
  • 使用 DRF ModelViewSet 和 TemplateHTMLRenderer 时如何访问模板中的数据?

    我有一个 Django Rest 框架ModelViewSet我正在尝试使用TemplateHTMLRenderer显示 HTML 跟随在tutorial from rest framework import permissions ren
  • Python 3.4 的 HTML 解析器

    我有一些用 Python 2 7 编写的代码 它使用 HTMLParser 我目前使用的是Python 3 4 我找不到 HTMLParser 下载模块 如果存在的话 有人可以分享一下链接吗 如果没有 我该怎么办 您不需要安装 Python
  • 如何使用 Express 添加 MIME 类型

    我正在尝试让 Firefox 播放视频标签 通常 我会将其添加到 Apache 上的 htaccess 文件中 AddType video ogg ogv AddType video mp4 mp4 AddType video webm w
  • 解析转发的电子邮件

    我正在写一些代码parse转发的电子邮件 我不确定是否有一些 Python 库 一些我可以坚持使用的 RFC 或一些其他资源可以让我自动执行任务 准确地说 我不知道转发电子邮件的 布局 是否包含在某些标准或建议中 或者它是否只是多年来才发展
  • VBA公共数组:如何?

    所以今天的问题让我很生气 因为这应该很容易 但我找不到答案 如何在VBA中声明公共数组 我正在使用包含字母 A B C 的数组 因为我正在使用 Excel 单元格 并且我不想在我创建的每个函数中声明它 对吧 我尝试先在网上查看 我读到您必须
  • 何时使用正则表达式与内置字符串方法?

    我注意到关于何时使用正则表达式以及何时使用内置字符串函数 如 String Replace NET 的很多小争论 似乎很多人建议在处理字符串时总是 总是 总是使用正则表达式 除了显示它们之外 这真的是最佳实践还是只是我的错误印象 当问题只是
  • 将图像上传到特定的 Facebook 相册

    我可以使用 facebook graph api 通过将数据发布到来创建相册 http graph facebook com ALBUM ID albums 它返回一个 id 但不是专辑 id 我通过两种方式确认了 通过转到该专辑 援助与我
  • Kotlin verifyError:向后分支 90 上存在未初始化的对象

    我正在使用Kotlin 入门指南使用以下配置在 IntelliJ IDEA 上首次设置 Kotlin IntelliJ IDEA 2017 2 5 Build IC 172 4343 14 built on September 26 201
  • C++ 多重继承 - 为什么你不工作?

    我正在尝试找出一个有趣的多重继承问题 祖父母是一个具有多个方法的接口类 class A public virtual int foo 0 virtual int bar 0 然后是部分完成这个接口的抽象类 class B public A
  • 事件日志监听器 - 应用程序和服务

    有没有办法在生成 应用程序和服务 事件时监视它们 在 C 中 我发现我不能使用 WMI 还有其他想法吗 您可以订阅EventLog EntryWritten 事件 当条目写入本地计算机上的事件日志时发生 来自 MSDN EventLog m
  • iOS8:自定义 Swift 框架访问用 Objective-C 编写的外部框架

    我正在尝试创建一个名为的自定义框架CouchbaseKit Xcode 中的新目标 在 Swift 中 在我的里面CouchbaseKit 我需要访问CouchBaseLite Framework这完全写在Obj C 我在用着Cocoapo
  • 如何从 Android 收件箱短信转换日期格式

    我使用了这段代码 String columnDate new String date Cursor cursor1 getContentResolver query Uri parse content sms inbox columnDat
  • 使用命令行参数启动 .jar 文件(但没有控制台窗口)

    我必须做一个应用程序的演示 该应用程序有一个server jar和client jar 两者都有命令行参数并且都是可执行的 我需要启动两个 server jar 实例和两个 client jar 实例 我认为使用批处理文件是正确的方法 但是
  • Unicode 字符的小写

    我正在研究一个C 需要从中获取数据的项目unicode text 我有一个问题 我无法降低一些unicode character I use wchar t存储从 unicode 文件读取的 unicode 字符 之后 我使用 wcslwr
  • 无法加载类型“System.Web.Optimization.StyleBundle”

    有时 在构建并启动我的 MVC4 Web 应用程序后 我会收到此错误 重建后它可能会消失 也可能不消失 发布到 Windows Azure 后我遇到了同样的问题 有谁知道如何修复这个错误 Server Error in Applicatio
  • Matplotlib 动画未在 PyCharm 中显示

    尝试执行此代码 A simple example of an animated plot import numpy as np import matplotlib pyplot as plt import matplotlib animat
  • 删除 GitHub 存储库的 fork 依赖项

    如何让 GitHub 忘记或取消关联我的存储库最初是另一个项目的分支 我在 GitHub 上分叉了一个项目 我现在可以看到 从任何 任何东西分叉 不再维护父存储库 whatever whatever 我被允许继续使用原始存储库的代码库来创建
  • 如果 SQL 中日期列重叠,则合并行

    我有一个以下格式的表格 Id StartDate EndDate Type 1 2012 02 18 2012 03 18 1 1 2012 03 17 2012 06 29 1 1 2012 06 27 2012 09 27 1 1 20
  • 我可以用逗号将多行分隔为一列吗? [复制]

    这个问题在这里已经有答案了 我正在尝试将这样的内容合并到我的 SQL Server 数据库中 TicketID Person T0001 Alice T0001 Bob T0002 Catherine T0002 Doug T0003 El