SQL Server变量中为路径元素添加单引号的最优方法
将SQL Server变量转换为指定格式的最优方法
原变量定义
declare @disks nvarchar (500) set @disks = 'C:\,F:\,E:\,K:\,Y:\'
目标输出
'C:\','F:\','E:\','K:\','Y:\'
方法一:SQL Server 2017及以上版本最优方案
利用SQL Server 2017引入的STRING_SPLIT(字符串拆分)和STRING_AGG(字符串聚合)函数,代码简洁且性能高效:
declare @disks nvarchar (500) set @disks = 'C:\,F:\,E:\,K:\,Y:\' -- 移除字符串首尾的逗号,避免拆分出空值项 set @disks = TRIM(',' FROM @disks) -- 拆分后为每个路径添加单引号,再用逗号聚合 select STRING_AGG('''' + value + '''', ',') as formatted_disks from STRING_SPLIT(@disks, ',')
方法二:兼容SQL Server 2016及以下版本
如果使用旧版本SQL Server,可通过REPLACE函数结合字符串拼接实现:
declare @disks nvarchar (500) set @disks = 'C:\,F:\,E:\,K:\,Y:\' -- 先清理首尾的逗号 set @disks = TRIM(',' FROM @disks) -- 替换逗号为','',再在首尾添加单引号 set @disks = '''' + REPLACE(@disks, ',', ''',''') + '''' select @disks as formatted_disks
内容的提问来源于stack exchange,提问作者lcoelho
相关产品推荐
相关产品推荐

