SQLServer 中实现类似MySQL中的group_concat()函数的功能

2023-11-07

SQLServer中没有MySQL中的group_concat函数,可以把分组的数据连接在一起。

后在网上查找,找到了可以实现此功能的方法,特此记录下。

SELECT
    a,
    stuff(
    	(SELECT '-' + b FROM tb WHERE a = t.a FOR xml path('') ),
        1, 1, ''
    )AS b from tb AS t
GROUP BY a;

先对a列进行分组,对分组中的b以Xml形式输出,再使用stuff将开关多出的,删掉。

示例SQL语句

select 
--a.Id, 
a.Name '产品名称', 
--a.ParentId, 
b.Name as '上级分类',
case a.IsOpenTask when '1' then '已开启' when '0' then '已关闭' end as '是否开启任务',
c.Name '进度阶段'
from tb_ServerType a
left join tb_ServerType b on b.id = a.ParentId
left join (
	select ServerTypeId, 
	STUFF((select ' - ' + Name from tb_ServerTypeSchedule where ServerTypeId = t.ServerTypeId FOR xml path('')), 2, 1, '') Name
	from tb_ServerTypeSchedule t
	group by ServerTypeId 
) c on c.ServerTypeId = a.Id

执行结果:
在这里插入图片描述

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

SQLServer 中实现类似MySQL中的group_concat()函数的功能 的相关文章

  • 获取在任何日期创建的表的列表?

    我遇到了这样的情况 我想查找我在 2012 年 9 月 14 日 2012 年 9 月 14 日 在 sql server 上创建的表 是否有任何查询会列出在此日期创建的这些表 SELECT FROM sys tables WHERE cr
  • SQL Server 中高效的字符串后缀搜索?

    我想找到与谓词匹配的所有行MyColumn LIKE FooBar 但通过使用索引查找而不是扫描 一种方法本质上是创建 MyColumn 的反向版本并搜索反向模式 ooF 在该列上 在反向列上有一个常规索引 然而 我不喜欢手动创建这个反向列
  • MySQL集群启动失败

    这不是我第一次创建ndbcluster 但我没有收到这样的问题 我正在关注本手册 https hub docker com r mysql mysql cluster by mysql团队 我正在使用回显的默认配置在此 GitHub 存储库
  • SQL Server:为什么 ISO-8601 格式的日期依赖于语言?

    我需要一些帮助来理解 SQL Server 中的日期格式处理 如果您尝试以下操作 它将返回正确的结果 SET LANGUAGE English SELECT CAST 2013 08 15 AS DATETIME 2013 08 15 00
  • MySQL 数据库无法在 XAMPP for Mac 上启动

    突然我在 mac 上遇到了这个问题 我无法启动我的 MySQL 数据库 我只能启动 ProFTPD 和 Apache Web Server 这是应用程序日志 Starting all servers Starting MySQL Datab
  • MySQL 将表从 Latin1 转换为 utf8

    我需要将包含大量数据的表从 Latin1 转换为 utf8 以便它可以接受韩语字符 如何更改该表而不损坏其中的数据 我的 SQL 语句是什么 最好的方法是什么 ALTER TABLE database name table name CON
  • 为什么我的代码会产生错误:该语句没有返回结果集[重复]

    这个问题在这里已经有答案了 我正在从 Microsoft SQL Server Studio 执行以下查询 该查询工作正常并显示结果 SELECT INTO temp table FROM md criteria join WHERE us
  • 在数据库中搜索时忽略空文本框

    此代码能够搜索数据并将其加载到DataGridView基于搜索表单文本框中提供的值 如果我将任何文本框留空 则不会有搜索结果 因为 SQL 查询是用 AND 组合的 如何在搜索 从 SQL 查询或 C 代码 时忽略空文本框 private
  • 插入记录后如何从SQL Server获取Identity值

    我在数据库中添加一条记录identity价值 我想在插入后获取身份值 我不想通过存储过程来做到这一点 这是我的代码 SQLString INSERT INTO myTable SQLString Cal1 Cal2 Cal3 Cal4 SQ
  • 如何在查询语句之外从mysql查询中获取值?

    这是下面的函数console log function quo value value connection query SELECT role from roles where id 1 function error results fi
  • SQL Server使用in关键字传递字符串数组查询

    我认为 IN 子句不能接受具有多个值的绑定参数 Oracle 不能 需要几分钟 查询是 declare setting varchar max set setting Sales Entry Grid Cursor Customer Man
  • MVCC 如何与 MySql 中的 Lock 配合使用?

    我知道Mysql中使用锁或者MVCC可以实现并发控制 比如可重复读 但我不知道MVCC如何避免幻读 在其他地方了解到一般是通过MVCC和Gap Lock来实现的 但是目前我理解的是MVCC不需要锁 即更新和删除都是使用undo log来实现
  • ALTER TABLE 语句与 FOREIGN KEY 约束冲突

    为什么要添加外键tblDomare表导致此错误 ALTER TABLE 语句与 FOREIGN KEY 约束 FK tblDomare PersN 5F7E2DAC 冲突 冲突发生在数据库 almu0004 表 dbo tblBana 列
  • SQL Server 查询中 UNION ALL 与 OR 条件

    我必须根据表上不存在的条件选择一些行 如果我使用如下的 union all 它会在不到 1 秒的时间内执行 SELECT 1 FROM dummyTable WHERE NOT EXISTS SELECT 1 FROM TABLE t WH
  • “修改列”与“更改列”

    我知道 我们不能使用重命名列MODIFY COLUMN语法 但我们可以使用CHANGE COLUMN syntax 我的问题是 主要用途是什么modify syntax 例如 ALATER TABLE tablename CHANGE co
  • 如何在 SQL Server 中不循环更新列?

    出于性能角度的考虑 我只需要删除循环并使用一些联接或其他解决方案来更新 Result 表中的数据并获得循环返回的相同结果 标量函数 CREATE FUNCTION MultiplyerScl a INT b INT RETURNS INT
  • MySQL“列计数与第 1 行的值计数不匹配”是什么意思

    这是我收到的消息 ER WRONG VALUE COUNT ON ROW 列计数与第 1 行的值计数不匹配 这是我的全部代码 我的错误在哪里 DROP TABLE student CREATE TABLE employee emp id I
  • 更改表添加列并在同一条件 IF 语句中更新新列

    我正在尝试添加列并在同一 if 语句中更新它 BEGIN TRAN IF NOT EXISTS SELECT 1 FROM sys columns WHERE Name N Code AND Object ID Object ID N Te
  • Django 将 JSON 数据传递给静态 getJSON/Javascript

    我正在尝试从 models py 中获取数据并将其序列化为views py 中的 JSON 对象 模型 py class Platform models Model platformtype models CharField max len
  • 休眠以持久保存日期

    有没有办法告诉 Hibernate java util Date 应该持久保存 我需要这个来解决 MySQL 中缺少的毫秒分辨率问题 您能想到这种方法有什么缺点吗 您可以自己创建字段long 或者使用自定义的UserType 实施后User

随机推荐

  • Python爬虫+数据可视化

    一 工具和环境 IDE Pycharm 第三方模块 1 jieba 主要功能 处理分词 2 requests 主要功能 获取接口数据 3 sqlite3 主要功能 进行数据库相关操作 4 matplotlib主要功能 进行绘图 5 ecah
  • R获知颜色名称及对应颜色代码

    pdf D colors bar pdf height 120 par mar c 0 10 3 0 0 1 yaxs i barplot rep 1 length colors col rev colors names arg rev c
  • docker container 设置自动重启,自动执行

    编写自动执行的脚本 start server sh 脚本内容是你要执行的内容 BASE PATH data3 image generate export PYTHONPATH PYTHONPATH BASE PATH cd BASE PAT
  • 2021-07-22-第一次实训(HTML+CSS+JS)

    layout post 标题配置 title 第一次实训 HTML CSS JS 时间配置 date 2021 07 22 11 00 00 0800 目录配置 categories JavaWeb 标签配置 tag 学习笔记 conten
  • 5 区块链的缺点及面临的问题

    5 1 区块链的缺点 任何事物都有两面性 区块链也不例外 之前介绍了区块链的去中心化 集体维护 解决信任问题等种种好处 现在咱们来看一下区块链的缺点 1 无隐私性 在区块链公有链中 每一个参与者都能够获得完整的数据备份 所有交易数据都是公开
  • 一文了解社区发现算法

    最近在调研社区发现图聚类在区域划分中的应用 将一些编辑汇总的信息记录如下 社团划分了解 社区是什么 在社交网络中 用户相当于每一个点 用户之间通过互相的关注关系构成了整个网络的结构 在这样的网络中 有的用户之间的连接较为紧密 有的用户之间的
  • 【会议资源】2022年第四届计算与人工智能国际研讨会(ISCAI 2022)

    2022年第四届计算与人工智能国际研讨会 ISCAI 2022 重要信息 会议网址 www iscai org 会议时间 2022年12月16 18日 召开地点 中国北京 截稿时间 2022年11月16日 录用通知 投稿后2周内 收录检索
  • Socket通信及文件操作

    java Socket通信及文件操作 编译软件 Eclipse 一 客户端 package com import java io BufferedReader import java io DataOutputStream import j
  • Mysql学习笔记-Mysql基础(基础看这篇就够了)

    数据库的基本概念 1 数据库的英文单词 DataBase 简称 DB 2 什么数据库 用于存储和管理数据的仓库 3 数据库的特点 1 持久化存储数据的 其实数据库就是一个文件系统 2 方便存储和管理数据 3 使用了统一的方式操作数据库 SQ
  • 【Linux】虚拟机免密登录

    以node1 node2为例 方法一 利用ssh keygen生成公钥和私钥 1 原理 在node1上生成公钥和私钥 之后将公钥复制到其他的虚拟机上 虚拟机通过匹配公钥则可以实现免密的操作 2 步骤 1 连接到node1 c ssh roo
  • Unknown CMake command "add_compile_definitions"

    Unknown CMake command add compile definitions 解决方法 换cmake 3 14
  • selenium自动化测试--126邮箱登录问题总结

    虫师著selenium 2自动化测试实战基于python语言第四章习题4 3 1 126邮箱登录练习问题总结 练习过程中 参考以下博友的博客顺利完成练习题 https blog csdn net cyjs1988 article detai
  • java.io.FileNotFoundException: xxx.txt (系统找不到指定的文件。) 的错误解决办法

    这是我报错的原来的代码 package day19 java2 import java io File import java io FileInputStream import java io IOException ClassName
  • saltstack+zabbix

    环境 server1 172 25 60 1 salt master salt minion zabbix server server2 172 25 60 2 salt minion zabbix agent 1 软件包安装过程存在许多依
  • 【小白笔记】——AD铺铜设置铜与焊盘、通孔的全连接

    目录 一 热焊盘与花焊盘的区别与比较 二 AD静态铺铜如何设置连接样式 一 热焊盘与花焊盘的区别与比较 来自百度百科 热焊盘 热焊盘指大面积的接地 电 中 常用元器件的腿与其连接 对连接腿的处理需要进行综合的考虑 就电气性能而言 元件腿的焊
  • 【数学建模】青少年犯罪问题

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 一 逐步回归分析法 1 1 逐步回归分析定义 最优回归方程 1 2 stepwise函数介绍 二 例题 青少年犯罪问题 2 1 题目简述 2 2 问题一建模与求解
  • 定制化UINavigationBar

    FirstViewController 定制化UINavigationBar void customNavigationBar 按钮被挡住 原因是 navigationbar的透明度默认为YES 先取出navigationbar UINav
  • java中countinue,.random(用于产生一个随机数)入门可看

    1 countinue 用在循环中 基于条件控制 跳过其次循环体内容的执行 继续下一次的执行 break 用在循环中 基于条件控制 终止循环体内容的执行 也就是结束当前的整个循环 eg public class zhou public st
  • php提取css生成单独文件,webapck将css 打包后单独提取到一个css文件中

    webpack4 提倡 一旦用了这个 不能使用style loader 以及css module 安装 npm install save dev mini css extract plugin rules rules test css us
  • SQLServer 中实现类似MySQL中的group_concat()函数的功能

    SQLServer中没有MySQL中的group concat函数 可以把分组的数据连接在一起 后在网上查找 找到了可以实现此功能的方法 特此记录下 SELECT a stuff SELECT b FROM tb WHERE a t a F