Ввод данных Excel в SQL с использованием где - PullRequest
0 голосов
/ 18 марта 2020

У меня есть таблица Excel (это только для примера): enter image description here

, и я в таблице SQL только с цветами. я хочу вставить новый столбец с такими номерами, как:

insert into table colors
set number = 'c' 
where color = 'RED'

, но у меня есть 1500 записей для добавления, и я не могу сделать это так ... как я могу это сделать?

спасибо

Ответы [ 3 ]

1 голос
/ 18 марта 2020

Сначала вам нужно добавить столбец в таблицу SQL (назовем его sql_table). Я предполагаю, что цвета в вашей таблице Excel являются подмножеством цветов в вашей sql_table.

alter table sql_table
add color_id varchar(100) --change datatype/length as desired

Тогда вы можете массово загрузить этот файл в SSMS как новую таблицу (во время загрузки / импорта убедитесь, что типы данных совпадают с вашей sql_table (давайте назовем эту новую таблица excel_table)

Наконец, update ваша sql_table на joining в вашем excel_table. Я предполагаю, что sql_table имеет 1 строку на цвет.

update sql_table a
join excel_table b on a.color = b.color
set a.color_id = b.color_id;

Если вы wi sh, вы можете удалить этот excel_table, так как ваш sql_table обновлен

0 голосов
/ 19 марта 2020

То, что я сделал, было так просто, я просто скопировал данные из Excel в SSMS: 1. Щелкните правой кнопкой мыши -> отредактируйте 200 верхних строк. и я прошёл данные.

я сделал то, что ты пишешь:

update sql_table a
join excel_table b 
on a.color = b.color

спасибо вам всем

0 голосов
/ 18 марта 2020

Вам не нужно знать базу данных для записи SQL вставки ИЛИ обновления. SQL универсален. Только ароматы, такие как MySql и T- SQL, включают языковые компоненты, чуждые SQL.

https://www.mysqltutorial.org/mysql-insert-statement.aspx

Обновления

Ваш актуальный вопрос увидели только после прочтения комментариев. Сначала создайте столбец Excel, который объединяет скрипт обновления.

    =concatenate("update colors set number = '", B1, "' where color = '", A1, "'")

Создает

Сначала создайте столбец Excel, в котором значения объединяются в формате:

('color', 'number' ),

    =concatenate("('", A1, "', '", B1, "'),")

Будьте внимательны с сервером SQL, вы можете вставлять одновременно только 1000 строк.

    insert into colors values
    (paste rows here)
    (remove comma from last line)

В таблице необходимо указать только структуру таблицы, если Ваши входные данные не в той же форме, что и таблица, которую вы можете контролировать.

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