Обновление заполнения пробелов в таблице SQL на основе CSV - PullRequest
0 голосов
/ 03 мая 2018

Я работаю над небольшим проектом в моем офисе, чтобы очистить таблицу наших клиентов, хранящуюся в SQL Server, и аналогичную, хранящуюся в PostgreSQL. В основном мы обнаружили, что у многих клиентов есть один или несколько столбцов, которые имеют 0 или являются пустыми и должны быть заполнены. Наш план состоит в том, чтобы сначала собрать все данные для 0 или пустых столбцов и заполнить CSV, а затем каким-то образом создать сценарий. заполнить пустые столбцы для каждого клиента.

Ниже приведен пример того, как выглядит текущая таблица с нулями и пустыми столбцами. Это случайно, какой столбец или столбцы должны быть заполнены для данного клиента (единственное, что у нас всегда есть, это имя пользователя клиента).

    username    emp_num title      email                  phone 
    -------------------------------------------------------------------
    jsmith      0       Manager    jsmith@somewhere.com 
    kjones      112222  Clerk                             111-222-3333
    wgarcia     0                  wgarcis@domain.com     444-555-6666

Мы будем заполнять что-либо с "0" с 6-значным числом, и любые пробелы будут иметь значения, заполненные в CSV.

Вопрос в том, как после того, как я заполнил csv со всей информацией о клиенте, как мне поступить:

  1. загрузка CSV в SQL; и
  2. Сценарий этого, чтобы сравнить файл CSV с существующей таблицей клиентов и заполнить только то, что не хватает? (т. е. 0 и пробелы).

Может кто-нибудь поделиться примерами SQL-запросов, чтобы начать? (Как к этому нужно подходить по-разному для PostgreSQL?)

ТИА, Chris

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

Предположительно, это одноразовое задание. Вы можете сделать это очень легко с помощью простого построения строк с помощью Excel или другого приложения для работы с электронными таблицами. Его нельзя будет использовать повторно, но часто это самое быстрое решение.

Это говорит о том, что это не сработает, если у вас будет очень большое количество клиентов, но это поможет вам за несколько тысяч.

Формула Excel

="UPDATE YourTable SET emp_num = " & B2 & ", title = '" & C2 & "', email = '" & D2 & "', phone = '" & E2 & "' WHERE username = '" & A2 & "'"

Просто скопируйте формулу во все строки в вашем CSV и выполните сгенерированные запросы.

0 голосов
/ 03 мая 2018

Обновите соединение с правильной таблицей клиентов следующим образом:

update a 
set a.emp_num=b.emp_num
from currenttable a join customer b on a.username=b.username
where a.emp_num in (0,'')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...