SQL Server 去掉数组项

1
2
3
4
5
6
7
8
9
10
11
12
13
declare @srctext nvarchar(max) = 'a,b,c';   
declare @deltext nvarchar(max)  = 'b';
declare @rtnText nvarchar(max);         
            
-- SQL Server 去掉数组项
SELECT @rtnText = STUFF(
    (SELECT ',' + value
     FROM STRING_SPLIT(@srctext, ',')
     WHERE value not like char(37)+@deltext+char(37)
     FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '');   
 
--结果:a,c
select @rtnText;

 

同理,查询字段中包含字符串

1
2
3
4
5
6
7
8
9
10
11
12
13
declare @srctext nvarchar(max) = 'a,b,c';   
declare @deltext nvarchar(max)  = 'b';
declare @rtnText nvarchar(max);         
            
-- SQL Server 去掉数组项
SELECT @rtnText = STUFF(
    (SELECT ',' + value
     FROM STRING_SPLIT(@srctext, ',')
     WHERE value like char(37)+@deltext+char(37)
     FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '');   
 
--结果:b
select @rtnText;

 

posted @   microsoft-zhcn  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2023-05-24 SQL 删除多个空格
2021-05-24 直播开发思路
2021-05-24 文件帮助类
点击右上角即可分享
微信分享提示