如何在SQL Server中快速为WHERE子句批量代码添加引号与逗号
在SQL Server中快速批量格式化IN子句的代码列表
方法一:SSMS正则表达式替换(编辑器内直接处理)
这是最便捷的方式,不用写脚本,在SSMS查询编辑器里就能完成:
- 选中括号内的所有代码行(比如示例里的
P279273、Q2793567这类内容) - 按
Ctrl+H打开替换窗口,点击窗口中的「使用正则表达式」按钮(图标为.*) - 查找内容输入:
^(.+)$ - 替换为输入:
'$1', - 点击「全部替换」,最后手动删除最后一行末尾的逗号即可。
方法二:用SQL脚本生成格式化语句
如果代码列表是文本形式,可直接粘贴到变量中,用SQL函数自动生成标准IN子句:
-- 将你的代码列表按行粘贴到@Codes变量内 DECLARE @Codes NVARCHAR(MAX) = 'P279273 Q2793567 Q29262718'; -- 生成格式化后的完整IN子句 SELECT 'WHERE CODE IN (' + STRING_AGG('''' + TRIM(value) + '''', ', ') + ')' FROM STRING_SPLIT(@Codes, CHAR(10)) WHERE TRIM(value) <> '';
执行后会直接输出符合要求的语句,复制即可使用。如果代码中包含单引号,只需把TRIM(value)替换为REPLACE(TRIM(value), '''', ''''''),就能自动完成单引号转义。
内容的提问来源于stack exchange,提问作者KLR
相关产品推荐
相关产品推荐

