sql合并字符串函数_字符组与字符串

sql合并字符串函数_字符组与字符串就是在SQL SERVER实现类似MYSQL中group_concat函数的功能,把分组中的字串拼接起来。SQL Server 2017可以用STRING_AGG函数实现,比如SELECT G, S…

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/8303.html

(0)
上一篇 2023-03-03
下一篇 2023-03-03

相关推荐

  • Elasticsearch kibana官方基础本地实践

    Elasticsearch kibana官方基础本地实践Elasticsearch kibana学习本地测试,数据处理分析

    2023-03-06
    106
  • 并发事务问题与事务隔离级别[通俗易懂]

    并发事务问题与事务隔离级别[通俗易懂]1.并发事务问题 1)脏读:一个事物读到另一个事务还没有提交的数据。 2)不可重复读:一个事务先后读取同一条记录,但两次读取的数据不同,称之为不可重复读。 3)幻读:一个事务按照条件查询数据时,没有对

    2023-05-11
    97
  • MySQL日志系统bin log、redo log和undo log「建议收藏」

    MySQL日志系统bin log、redo log和undo log「建议收藏」MySQL日志系统bin log、redo log和undo log 今人不见古时月,今月曾经照古人。 简介:日志是MySQL数据库的重要组成部分,记录着数据库运行期间各种状态信息,主要包括错误日志、

    2023-04-21
    115
  • Python中的and运算符与正则表达式的应用

    Python中的and运算符与正则表达式的应用and是Python语言中的逻辑运算符,它将两个表达式连接起来,返回两者都为True时的结果。在Python中,True可以表示为1,False可以表示为0。下面是and运算符的基本示例:

    2024-03-03
    36
  • redis集合数据结构_redis的set集合命令

    redis集合数据结构_redis的set集合命令redis 的集合是无序的,集合成员是唯一的,不能重复。用户可以快速地对集合执行添加元素操作、移除元素操作以及检查一个元素是否存在于集合中。这里介绍一些常用的集合处理命令,并在 Yii 中的使用。 S

    2023-03-11
    91
  • Python GUI实现用户界面交互

    Python GUI实现用户界面交互GUI全称为图形用户界面,是指通过可视化的方式,让用户和计算机进行交互的操作界面。它的出现,使得用户可以通过鼠标、键盘等视觉和触觉的方式来操作计算机,从而逐渐取代了过去的命令行界面。Python提供了多种GUI库,比如Tkinter、PyQt、wxPython等,这些库都能够轻松实现GUI界面的开发。

    2024-02-01
    49
  • MySQL 语言_数据定义语言的缩写词为

    MySQL 语言_数据定义语言的缩写词为SQL 包含以下 4 部分: 1 数据定义语言(DDL):DROP、CREATE、ALTER 等语句。 2 数据操作语言(DML):INSERT(插入)、UPDATE(修改)、DELETE(删除)语句

    2023-02-09
    104
  • 如何卸载MongoDB

    如何卸载MongoDB在进行数据库操作的过程中,有时需要卸载数据库软件,本文将介绍如何卸载MongoDB。

    2024-05-02
    21

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注