2015-04-05 2 views
-1

Я просто хочу знать, есть ли ярлык для автоматического добавления кавычек к каждой строке в IN CLAUSE?одинарные кавычки к строкам в t-sql

Для экс: я получил больше чем 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

Это не совсем понятно, что вы просите. Почему бы вам просто не поставить 10 таблиц в предложение 'IN' с кавычками? Если вам нужно в любом случае перечислить таблицы отдельно, что еще пара дополнительных символов? –

+0

Привет, спасибо за ответ. Я знаю, что мне нужно добавлять одиночные кавычки в каждую таблицу, но я просто хочу знать любой способ быстрого добавления цитат к каждой строке в IN CLAUSE. Спасибо – GK1960

+0

Вам нужно уточнить, что вы делаете, и почему вам нужен другой способ поставить апострофы в запрос, чем печатать. Просто набирать 20 апострофов было бы намного быстрее, чем задавать вопрос об этом, поэтому, очевидно, что-то, что не передается в вопросе. – Guffa

ответ

3

Один из способов сделать это было бы использовать диалог замены в SSMS.

Вставьте запрос в SSMS и выберите весь список «в», включая открытые и закрывающие скобки.

Выберите Ctrl + H, чтобы вызвать "Quick Replace".

Введите {[^,()]+} в положение «найти что» и '\1' в «Заменить», убедитесь, что в поле «Выбор» выбрано значение «Выбор» и выберите «Использовать регулярные выражения» в окончательной опции.

Затем нажмите кнопку «Заменить все»

enter image description here

+0

Вы - Fab Спасибо. – GK1960

+0

Если возможно .. Не могли бы вы объяснить? Спасибо – GK1960

+0

@ GK1960 '{}' ограничивает тегированное выражение. '[^,()]' Означает соответствие любого символа, который не является ('^') в заданной запятой, открытой скобке, закрывающей скобке. «+» Означает один или несколько раз. Этот отмеченный результат пронумерован '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%' 

ИЛИ

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%' 
Смежные вопросы