我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SQL Server 如何合并组内字符串

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SQL Server 如何合并组内字符串

SQL Server 如何合并组内字符串

2016版没有STRING_AGG函数,就会麻烦很多:

SELECT p2.G,

SS = JSON_VALUE(

   REPLACE(

     (SELECT _   = p1.S FROM T p1 WHERE p1.G = p2.G FOR JSON PATH)

      ,""},{"_":"",", "),"$[0]._"

)

FROM  T p2

SQL Server 2014需要3层嵌套来合并组内字符串,还得借助XML,代码看起来非常复杂:

SELECT Main.G,

         LEFT(Main.SS,Len(Main.SS)-1) As "SS"

FROM

    (

        SELECT   DISTINCT p2.G,

            (

                  SELECT p1.S + "," AS [text()]

                  FROM T p1

                  WHERE p1.G = p2.G

                  ORDER BY p1.G

                  FOR XML PATH ("")

            )[SS]

        FROM T   p2

)[Main]

其他版本的SQL  Server写法虽然各有不同,但通常也很复杂。

当数据库没有类似group_concat这样的函数时,可以用esProc协助实现,代码会简单很多。同样针对2014SQL ServeresProc可以这样合并组内字符串:

  A B
1 =db.query("select G, S from T") /query from SQL Server 2014
2 =A1.group(G; ~.(S).concat(",")) /用逗号合并多行

这样就可以实现类似group_concat的功能了,而且任何数据库上都可以用。

 

esProc是个脚本语言,可以在IDE里反复执行,还可以用命令行方式调用,适合简化SQL中的难题。类似上面简化分组SQL的例子:

SQL 难点解决:直观分组
SPL 简化 SQL 案例详解:行间计算
SPL 简化 SQL 案例详解:计算各组前 N 行
SPL 简化 SQL 案例详解:多层固定分组

这里有优化 SQL 的汇总 集算器优化 SQL 汇总
这里是常用的 esProc 算法 http://doc.raqsoft.com.cn/esproc/coderefer/

esProc提供了敏捷的语法体系和丰富的结构化类库,可通用地解决SQL难题,详情参考http://www.raqsoft.com.cn/wx/sql-solver.html

关于集算器安装使用、获得免费授权和相关技术资料,可以参见

http://c.raqsoft.com.cn/article/157189535077

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SQL Server 如何合并组内字符串

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

SQL Server 如何合并组内字符串

但2016版没有STRING_AGG函数,就会麻烦很多: SELECT p2.G, SS = JSON_VALUE(    REPLACE(      (SELECT _   = p1.S FROM T p1 WHERE p1.G = p2
SQL Server 如何合并组内字符串
2014-06-07

SQL Server怎么合并组内字符串

今天给大家介绍一下SQL Server怎么合并组内字符串。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。SELECT p2.G,SS = JSON_VALUE(
2023-06-03

php如何合并数组转成字符串

这篇文章主要讲解了“php如何合并数组转成字符串”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php如何合并数组转成字符串”吧!实现方法:1、用array_merge()函数将多个数组合并为
2023-06-30

python如何组合多个字符串

这篇文章主要为大家展示了“python如何组合多个字符串”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python如何组合多个字符串”这篇文章吧。组合多个字符串如果您想连接列表中所有可用的标记,
2023-06-27

python如何合并列表为字符串

这篇文章主要介绍python如何合并列表为字符串,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!合并列表为字符串str_list = [hello, world, good] str1 = "".join(str_li
2023-06-27

sql合并字符串的方法是什么

在 SQL 中合并字符串的方法有多种,具体取决于所使用的数据库管理系统。以下是一些常见的方法:使用 CONCAT 函数: CONCAT 函数用于将两个或多个字符串合并在一起。例如,使用 CONCAT 函数将两个字段合并成一个新字段:SEL
sql合并字符串的方法是什么
2024-04-08

sql两个字符串合并的方法是什么

在SQL中,可以使用CONCAT函数来合并两个字符串。语法如下:SELECT CONCAT(column1, column2) AS new_columnFROM table_name;其中column1和column2是要合并的两个字
sql两个字符串合并的方法是什么
2024-03-04

vb如何定义字符串数组并赋值

在VB中,可以使用`Dim`关键字来定义字符串数组,并使用大括号`{}`来为数组赋值。例如,以下代码定义了一个名为`strArray`的字符串数组,并将其赋值为`"Hello", "World", "!"`:```vbDim strArra
2023-08-08

如何将json字符串数组转为php字符串数组

这篇文章主要介绍“如何将json字符串数组转为php字符串数组”,在日常操作中,相信很多人在如何将json字符串数组转为php字符串数组问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何将json字符串数组转
2023-07-05

如何使用Python的join()函数合并字符串

如何使用Python的join()函数合并字符串概述:在Python中,我们经常会遇到需要合并多个字符串的情况。Python提供了一个非常方便的方法join()来实现字符串的合并。本文将介绍join()函数的使用方法,并提供一些具体的代码示
如何使用Python的join()函数合并字符串
2023-11-18

sql字符串转数字如何实现

在SQL中,可以使用CAST或CONVERT函数将字符串转换为数字。以下是两种方法的示例:使用CAST函数:SELECT CAST('123' AS INT)使用CONVERT函数:SELECT CONVERT(INT,
sql字符串转数字如何实现
2024-04-09

php 字符串如何转字节数组

这篇文章主要讲解了“php 字符串如何转字节数组”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php 字符串如何转字节数组”吧!php字符串转字节数组的方法:首先创建一个PHP示例文件;然后
2023-06-20

php sql字符串如何转日期

本篇内容主要讲解“php sql字符串如何转日期”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php sql字符串如何转日期”吧!php sql字符串转日期的方法:1、通过“date("Y-m-
2023-06-25

编程热搜

目录