我只想知道是否有任何快捷方式可以自动为IN CLAUSE中的每个字符串添加引号?
例如:我有超过10个表来检查IN CLAUSE
select * from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME in (dimproduct,dimproductCateogory,dimproductSubCateogory,FactInternetSales)
and COLUMN_NAME like '%eng%'
在上面的例子中,我希望输出如下:为每个字符串添加单引号
where TABLE_NAME in ('dimproduct','dimproductCateogory','dimproductSubCateogory','FactInternetSales')
任何帮助?
答案 0 :(得分:3)
这样做的一种方法是在SSMS中使用替换对话。
将查询粘贴到SSMS中,然后选择整个“在”列表,包括打开和关闭括号。
选择 Ctrl + H 以显示“快速替换”。
在“查找内容”中输入{[^,()]+}
,在“替换”中输入'\1'
,确保为范围选择“选择”,并在最终选项中选择“使用正则表达式”。
然后点击“全部替换”
答案 1 :(得分:0)
select * from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME in (SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME LIKE 'dimproduct%'
OR TABLE_NAME = 'FactInternetSales')
and COLUMN_NAME like '%eng%'
OR
SELECT c.*
FROM sys.columns c
INNER JOIN sys.tables t ON C.object_id = t.object_id
WHERE (t.name LIKE 'dimproduct%'
OR
t.name = 'FactInternetSales')
AND c.name LIKE '%eng%'