【sqlserver】带分隔符字符串和多行互相转化

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介: 【sqlserver】带分隔符字符串和多行互相转化

字符串转多行

 SELECT b.T 
FROM(
  SELECT CONVERT(XML,'<n>'+REPLACE(REPLACE('HY-107860;HY-107871;HY-109816;HY-109824;HY-109826;HY-113868;HY-2169',';',','),',','</n><n>')+'</n>') AS xmlval 
) a 
CROSS APPLY(
  SELECT k.n.value('.','nvarchar(80)') T 
  FROM a.xmlval.nodes('n') k(n)
) b  

项目实例

  SELECT releaseId, sprojectId 
  FROM (SELECT releaseId, projectId=cast('<v>'+replace(projectId,'^','</v><v>')+'</v>' as xml) FROM ReleaseInfo) a outer apply (SELECT sprojectId=T.C.value('.','nvarchar(50)') from a.projectid.nodes('/v') as T(C) )b
  
    where a.releaseId='FASRPT_V1.0.0.4'

分析

思路就是分隔符转xml 解析xml变多条数据

多行合字符串

WITH tmp AS ( SELECT releaseId, projectId FROM ReleaseInfo  ) SELECT
releaseId,
projectId,
stuff(( SELECT DISTINCT ',' + projectId FROM tmp WHERE releaseId = t.releaseId FOR xml path ( '' )), 1, 1, '' ) AS projectIds 
FROM
  tmp t
    
  where t.releaseId='FASRPT_V1.0.0.4'


相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
4月前
|
SQL XML JSON
在 SQL Server 中使用字符串转义
【8月更文挑战第5天】
327 7
在 SQL Server 中使用字符串转义
|
4月前
|
SQL 数据采集 存储
"揭秘SQL Server中REPLACE函数的神奇力量!一键替换字符串,解锁数据处理的无限可能,你还在等什么?"
【8月更文挑战第20天】SQL Server 的 REPLACE 函数是处理字符串的强大工具,用于在查询中替换字符串的部分内容。基本语法为 `REPLACE(string_expression, string_pattern, string_replacement)`。例如,可将员工邮箱从 `@example.com` 替换为 `@newdomain.com`。支持多级嵌套替换与变量结合使用,适用于动态生成查询。注意大小写敏感性及全局替换特性。掌握 REPLACE 函数能有效提升数据处理能力。
218 0
|
SQL
sql server从某个字符开始截取后面的字符串
sql server从某个字符开始截取后面的字符串
176 0
sqlserver 截取字符串中的汉字
sqlserver 截取字符串中的汉字
210 0
|
SQL
SQLSERVER中分割字符串成多列
SQLSERVER中分割字符串成多列
156 0
|
SQL 数据库 数据安全/隐私保护
VS2017调用SQL server 2019 和C++连接语句字符串
VS2017调用SQL server 2019 和C++连接语句字符串
VS2017调用SQL server 2019 和C++连接语句字符串
|
SQL Oracle 关系型数据库
SQLServer中查询的数字列前面补0返回指定长度的字符串
原文:SQLServer中查询的数字列前面补0返回指定长度的字符串 SQLServer中查询的数字列前面补0返回指定长度的字符串:   如:   角本如下: /****** Script for SelectTopNRows command from SSMS ******/ SE...
2950 0
|
SQL
mssql sqlserver 判断字符串大小写的方法分享
原文:mssql sqlserver 判断字符串大小写的方法分享 摘要:下文讲述使用sql脚本的方法判断字符串为大小写的方法分享,如下所示 实验环境:sqlserver 2008 R2 实现思路: 将字符串转换为大写或小写然后转换为二进制编码, 然后和源字符串做对比。
1433 0