首页 > 数据库 >SQL Server实现mysql中的group_concat功能

SQL Server实现mysql中的group_concat功能

时间:2023-08-04 19:00:50浏览次数:49  
标签:group UserId Server SettleTime concat SQL id select

mysql中的group_concat函数的功能
  将group by产生的同一个分组中的值连接起来,返回一个字符串结果。

group_concat函数首先根据group by指定的列进行分组,将同一组的列显示出来,并且用分隔符分隔。由函数参数(字段名)

select group_concat(emp_name) from emp;

语法:group_concat([distinct] 字段名 [order by 排序字段 asc/desc] [separator ‘分隔符’])

(1)使用distinct可以排除重复值;

(2)如果需要对结果中的值进行排序,可以使用order by子句;

(3)separator是一个字符串值,默认为逗号。

实例:

1:以id分组,把name字段的值在同一行打印出来,逗号分隔(默认):

select id, group_concat(name) from student group by id;

2:自定义分隔[分号]

select id,group_concat(name separator ;’) from student group by id;

实例

Select

  Id,

  STUFF(

       (

         SELECT ‘,’ + T.Name

         FROM #student T

         WHERE A.Id= T.Id

         FOR XML PATH(‘’)

       ), 1, 1, ‘’

     ) as group_concat

FROM #student A

Group by Id

实践:

select Convert(char(10),g.SettleTime,120) as settelTime, g.Platform,g.UserId,SUM(AvailableBetAmount) as validAmount,STUFF(

(

    select ',' + a.orderId from G_Game_Order as a  

 where a.UserId = g.userId and a.Platform=g.Platform and Convert(char(10),a.SettleTime,120)=Convert(char(10),g.SettleTime,120) FOR XML PATH('')  

),1,1,''

) as orderId  

from G_Game_Order g,C_User_Register u where u.UserId=g.UserId and g.status=1 and g.XmState=0  

and g.SettleTime>='2023-08-01'

group by g.Platform,g.UserId,Convert(char(10),g.SettleTime,120)

SQL Server实现mysql中的group_concat功能_group concat


参考地址:https://blog.csdn.net/mysqltop/article/details/124252173?ydreferer=aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L215c3FsdG9wL2FydGljbGUvZGV0YWlscy8xMjQyNTIxNzM%3D

标签:group,UserId,Server,SettleTime,concat,SQL,id,select
From: https://blog.51cto.com/jition/6966554

相关文章

  • Mssql手工注入执行命令小记
    文章写于2021-04-08,首发于https://www.anquanke.com/post/id/237031#h2-6前言本次渗透通过某处SQL注入点进行源码分析,并手工利用xp_cmdshell进行了命令执行。初现在某个晴朗夏日午后,闲来无事想测试,这不,马上就掏出xray扫描到了一个sql注入漏洞,不得不说xray真的挺好用的。该项目......
  • postgresql执行计划
    SQL优化主要从三个角度进行:(1)扫描方式;(2)连接方式;(3)连接顺序。如果解决好这三方面的问题,那么这条SQL的执行效率就基本上是靠谱的。看懂SQL的执行计划的关键也是要首先了解这三方面的基本概念,只有搞清楚了这些基本概念,才能够更好的看懂SQL的执行计划,下面我们分别来学习这些预备知识。......
  • SQLACODEGEN 转储现有数据库到sqlalchemy模型
    sqlacodegen--帮助用法:sqlacodegen[-h][--version][--schemaSCHEMA][--tablesTABLES][--noviews][--noindexes][--noconstraints][--nojoined][--noinflect][--noclasses][--nocomments][--outfile输出文件][网址]从现有数据库生成SQLAlchemy模型代码。该......
  • 2023.8.4 周五:MySQL相关命令
    1#展示数据库2showdatabases;34#创建数据库5creatdatabase+db1(数据库名称);67#如果创建同样名字的数据库,会报错,可以选择另一条判断语句;8creatdatabaseifnotexistsdb1;910#删除数据库11dropdatabasedb1(数据库名称);1213#如果删......
  • MySQL8.0 JSON相关函数(二) -更改JSON值
    (目录)本文涉及函数简介函数作用JSON_ARRAY_APPEND在数组后追加元素JSON_ARRAY_INSERT在JSON数据中的指定位置插入元素JSON_INSERT如果存在值,不操作,否则插入值JSON_REPLACE如果存在值,更新该值,否则不操作JSON_SET如果存在值,就更新,否则就插入JSON_REM......
  • SQLserver值是否存在另外一个表中
    在SQL中,查询存在一个表而不在另一个表中的数据记录的方法有很多,介绍其中4种:1、方法一(仅适用单个字段):使用notin,比较容易理解,缺点是效率低如:selectA.IDfromAwhereA.IDnotin(selectIDfromB);2、方法二(适用多个字段匹配):使用leftjoin...on...,"B.IDisnull"表......
  • docker-compose 启动MySQL
    version:'3.3'services:mysql:image:mysql:8.0.20##镜像restart:alwayshostname:mysqlcontainer_name:mysqlprivileged:trueports:-3306:3306environment:MYSQL_ROOT_PASSWORD:123456TZ:As......
  • pandas之groupby
    数据准备importpandasaspddf=pd.read_excel(r"C:\Users\Desktop\Excel工作表.xlsx")print(df)"""产品分类价格销量0桃子水果1221341李子水果2331232香蕉水果125343饺子生鲜115654馒头生鲜967885包子......
  • promethous+granfa+mysql监控部署
    一、Prometheus源码安装和启动配置普罗米修斯下载网址:https://prometheus.io/download/监控集成器下载地址:http://www.coderdocument.com/docs/prometheus/v2.14/instrumenting/exporters_and_integrations.html1.实验环境IP 角色 系统172.16.11.7 Prometheus服务端 CentOS7......
  • 掌握 SQL Server 中的 IF THEN 逻辑
    在数据库管理领域,牢牢掌握T-SQL控制流语句是一项至关重要的技能。这些语句允许开发人员动态地控制程序执行的流程,使复杂的逻辑实现成为可能。在SQLServer中强大的流控制语句中,IF语句作为基本工具脱颖而出。了解T-SQL流控制语句首先,让我们首先定义本文的主要焦点。我们将深......