2013-08-21 2 views
1

У меня было много запросов путем копирования и вставки столбца из одной таблицы в excel или из таблицы в другой db. Единственная проблема с этим - добавление запятых, а также кавычки, если это поле varchar.Запуск sql-запроса в столбце от excel

Если я хочу скопировать и вставить столбец для запуска запроса, что является простым способом получить его в правильном формате?

например:

select * from table1 where columnName in ('row one', 
'row two', 
'row three', 
'row four', 
'row five') 
+0

Какая база данных? Помогает ли Google для «[имя базы данных] CSV» вообще? – hd1

+0

Вы можете сохранить свое excel или только нужный столбец в формате .csv, тогда вы можете добавить кавычки с любым редактором (например, notepad ++) –

ответ

0

Если вы хотите, чтобы быстро сгенерировать операторы SQL из данных Excel, я могу предположить, что это:

Написать следующую формулу в пустую ячейку:

="insert into table values('" &B3 &"','" & C3 & "','"&D3&"');" 

где B3, C3, D3 относятся к табличным данным.

В новой ячейке будет строка SQL с правильными значениями.

Источник: http://chandoo.org/wp/2008/09/22/sql-insert-update-statements-from-csv-files/

0

Я создал определенный пользователь функцию для создания запятых списков. У меня есть файл .xla, поэтому он всегда доступен мне.

В принципе, это позволяет мне выбрать один столбец данных и создать список с любым выбранным мной seperator (запятая как значение по умолчанию) и позволяет указать, следует ли использовать кавычки (отключите их для числовых значений).

Function CommaList(DataRange As Range, Optional Seperator As String = ",", Optional Quotes As Boolean = True) As String 
    Dim iCellNum As Integer 
    Dim sTemp As String 

    If DataRange.Columns.Count > 1 Then 
     CommaList = "Select a Single Column" 
     Exit Function 
    End If 

    For iCellNum = 1 To DataRange.Cells.Count 
     If Quotes Then 
      sTemp = sTemp + "'" + DataRange.Cells(iCellNum, 1) + "'" 
     Else 
      sTemp = sTemp + DataRange.Cells(iCellNum, 1) 
     End If 
     If iCellNum < DataRange.Cells.Count Then 
      sTemp = sTemp + Seperator 
     End If 
    Next iCellNum 

    CommaList = sTemp 

End Function 
+0

Я довольно новичок в SQL. Как использовать эту функцию и где ее разместить? – user2683873

+0

Это не SQL. Это функция vba, с которой вы будете работать в excel. –

0

Мое предложение заключается в использовании функции Replace(), чтобы преобразовать все вкладки (Char (9)) к '' то, чтобы изменить все 'линия питает' (CHAR (13)) в '' , Ваш результат затем «Commafied и цитирует»

Declare @String Varchar(max) 

set @string = 
'row one 
row two 
row three 
row four' 

set @string = '''' + replace (replace(@string, Char(9) ,''' , '''),Char(13) ,''' , ''')+ '''' 
print @string 

это делает результат «выглядеть» похорошела:

set @string = replace (replace (replace(@string, Char(9) ,''' , '''),Char(13) ,''' , '''), Char(10), '') 
print @string 
0

я сделать что-то подобное, а также с помощью «в» положение.

Если вы копируете Excel, отформатируйте свои данные в другом столбце, используя функцию concatenate. Итак, чтобы добавить запятую в ячейку A2, например, =Concatenate(A2,","). скопируйте это по всем строкам. затем скопируйте и вставьте colum в sql и т. д.

Смежные вопросы