单引号到t-sql中的字符串

时间:2015-04-05 12:12:02

标签: sql-server sql-server-2008 tsql

我只想知道是否有任何快捷方式可以自动为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')

任何帮助?

2 个答案:

答案 0 :(得分:3)

这样做的一种方法是在SSMS中使用替换对话。

将查询粘贴到SSMS中,然后选择整个“在”列表,包括打开和关闭括号。

选择 Ctrl + H 以显示“快速替换”。

在“查找内容”中输入{[^,()]+},在“替换”中输入'\1',确保为范围选择“选择”,并在最终选项中选择“使用正则表达式”。

然后点击“全部替换”

enter image description here

答案 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%'