Включите 3 столбца в запросе - PullRequest
0 голосов
/ 22 февраля 2020

Как лучше всего взять 3 столбца, например:

Excel Screenshot

и превратить его в запрос для SQL, например:

INSERT [dbo].[tbl_code_amulet] ([item_id], [item_code], [item_name])
    VALUES (0, N'iabba01', N'Fire Parsal AppendixA')

Я попробовал это с формулами EXCEL, но, похоже, не могу понять это правильно. Любой здесь, кто может указать мне правильное направление.

Ответы [ 2 ]

1 голос
/ 22 февраля 2020

Я обычно делал бы это, набирая выражение в одной ячейке, скажем, A1 (это может быть любая неиспользуемая ячейка):

INSERT [dbo].[tbl_code_amulet] ([item_id], [item_code], [item_name])  VALUES ([ii], [ic], [in]);

И затем используя REPLACE() для формул:

REPLACE(REPLACE(REPLACE($A$1, '[ii]', A3), '[ic]', B3), '[in]', C3)

А затем скопируйте эту формулу вниз.

Почему я использую этот метод? Во-первых, мне гораздо легче увидеть, что происходит, если взглянуть на оригинальную формулу. Множество конкатенаций строк затрудняет мне понимание логики c.

Во-вторых, очень легко изменить формулу. Если вы видели код, который я написал в SQL, я, например, очень внимателен к отступам. При генерации SQL в электронной таблице я часто перебираю код, поэтому он выглядит правильно.

Третья причина заключается в том, что одно и то же значение можно легко использовать в нескольких местах в SQL, если это полезно.

0 голосов
/ 22 февраля 2020

Первая строка Excel (выглядит как строка 3 на скриншоте)

="INSERT [dbo].[tbl_code_amulet] ([item_id], [item_code], [item_name]) VALUES ("&A3&", '"&SUBSTITUTE(B3,"'","''")&"', '"&SUBSTITUTE(C3,"''","''")&"')"

, затем перетащите другие строки.

Как я ее построил

В формулах Excel вы строите строки (текстовые жетоны), заключая текст в двойные кавычки ("). Это означает, что фрагмент

"INSERT [dbo].[tbl_code_amulet] ([item_id], [item_code], [item_name]) VALUES ("

эквивалентен записи текста между двойными кавычками.

Вам необходимо знать Excel, чтобы вы могли объединять строки с оператором &, то есть "Hello " & "World" эквивалентно строке «Hello World».

Вы также должны помнить, что строки должны быть заключены в одинарные кавычки (') в командах SQL Ваш второй и третий столбцы содержат текстовые данные (строки) это означает, что они должны быть окружены ', что объясняет фрагмент кода , ' на правой стороне клавиатуры VALUES.

Наконец, в SQL вы должны экранировать одиночные кавычки внутри вашего текста, удваивая их. Для достижения этого результата я прошу Excel заменить каждый ' на '' с помощью функции SUBSTITUTE (см. официальную справку )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...