Приемы для генерации SQL-операторов в Excel

18
задан shruti1810 27 May 2015 в 09:09
поделиться

8 ответов

Точка с запятой должна быть в последней двойной кавычке с закрытием paren. При добавлении одинарных кавычек вокруг строки не забудьте добавлять их вне выбранной ячейки.

(пробелы, добавленные для видимости - удаляют прежде, чем вставить)

=CONCATENATE("insert into table (id, name) values (",C2,",' ",D2," ');")

Вот другое представление:

=CONCATENATE("insert into table (id, date, price) values (",C3,",'",D3,"',",B3,");")

31
ответ дан 30 November 2019 в 07:23
поделиться

Почему Вы генерируете SQL в Excel? Это легче и намного быстрее, чтобы экспортировать рабочий лист как файл CSV и затем использовать некоторый инструмент для импорта того файла в базу данных SQL. Например, оператор MySQL LOAD DATA INFILE .

Извинения за то, что не был отвечен на Ваш вопрос непосредственно, и я знаю, что это не решение для всех обстоятельств.

0
ответ дан 30 November 2019 в 07:23
поделиться

Я делал это вчера, и да, это является раздражающим для разбираний в кавычках. Одна вещь, которую я сделал, была, имеют именованную ячейку, которая просто содержала одинарную кавычку. Введите в A1 ="'" (равняется, двойной кавычке, одинарная кавычка, двойная кавычка), и затем назовите эту ячейку "КАВЫЧКОЙ" путем ввода этого в поле слева от самой низкой панели инструментов.

0
ответ дан 30 November 2019 в 07:23
поделиться

Иногда, создание SQL Вставляет, это, кажется, самый легкий путь. Но Вы устаете от него быстро, и я не думаю, что существуют "умные" способы сделать это (кроме, возможно, macros/VBA программирующий).

я указал бы на Вас, чтобы избежать Excel и исследовать некоторые другие идеи:

  • Доступ использования (большой фильтр импорта csv, затем свяжитесь с Таблицей базы данных и позвольте Доступу обработать вставку)
  • ЖАБА использования (еще лучше функция импорта, поскольку это позволяет Вам столбцам смешивания и подгонки, и даже импортировать из буфера обмена)
  • использование Загрузчик SQL (немного хитрый для использования, но быстрый и довольно гибкий).
0
ответ дан 30 November 2019 в 07:23
поделиться

Экспорт файла Excel в формате csv может быть альтернативным вариантом (см. Сообщение Билла Кравина - как новый постер, я пока не могу добавить комментарий). Однако имейте в виду, что вам, вероятно, придется изменить форматирование полей даты на гггг-мм-дд, иначе все столбцы даты будут показывать 00/00/00 - это потому, что MySQL использует другой формат даты, чем Microsoft Excel. В качестве альтернативы используйте OpenOffice для сохранения файла csv.

0
ответ дан 30 November 2019 в 07:23
поделиться

Как насчет запроса и вставки данных из книги Excel в источник с помощью ACE / Jet (также известного как Access) SQL? Для этого требуется ACE / Jet, которая может быть другой таблицей Excel. Вот краткий пример:

INSERT INTO 
   [ODBC;Driver={SQL Server};SERVER=MYSERVER;DATABASE=MyDatabase;UID=sa;Pwd=mypassword;].MyTable (ID, Name)
SELECT F1, F2
  FROM 
   [Excel 8.0;HDR=NO;IMEX=1;Database=C:\db.xls;].[Sheet1$A1:B4];
0
ответ дан 30 November 2019 в 07:23
поделиться

Иногда я использую подстановку для замены шаблонов в команде SQL вместо того, чтобы пытаться построить команду sql из конкатенации. Скажем, данные находятся в столбцах A и B. Вставьте верхнюю строку. В ячейку C1 поместите команду SQL с использованием шаблона:

insert into table t1 values('<<A>>', '<<B>>')

Затем в строках 2 поместите формулу excel:

=SUBSTITUTE(SUBSTITUTE($C$1, "<<A>>", A2), "<<B>>", B2)

Обратите внимание на использование абсолютной адресации ячеек $ C $ 1 для получения шаблона. Особенно удобно при работе с char или varchar и необходимости смешивать одинарные и двойные кавычки в конкатенации. Сравните с:

=concatenate("insert into table t1 values '", A2, "', '", B2, "')"

Другая вещь, которая укусила меня не один раз, - это попытка использовать excel для обработки некоторых символов или varchars, которые являются числовыми, за исключением того, что у них есть ведущие нули, такие как 007. Excel преобразует в число 7.

2
ответ дан 30 November 2019 в 07:23
поделиться

Я использовал метод конкатенации строк для создания вставок SQL в Excel. Он может работать хорошо, но также может занимать немного времени и «неудобно».

Я создал надстройку Excel, которая упрощает создание вставок из Excel:

(см. Видео внизу страницы) http://www.howinexcel.com/2009/06/generating-sql-insert-statements-in-excel.html

http://www.querycell.com/SQLGenerator.html

http : //www.oneclickcommissions.com/excel-statement.html

2
ответ дан 30 November 2019 в 07:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: