Эффективно ли создавать новый столбец в SQL Server и находить только совпадающие данные в новом столбце? - PullRequest
0 голосов
/ 28 октября 2019

Мне интересно, эффективен ли следующий процесс или есть ли лучший способ сделать это:

Таблица состоит из 4 соответствующих столбцов:

  • Id
  • Дата рождения (1984-03-19)
  • Имя (Джон)
  • Фамилия (Доу)

Я хочу объединить этистолбцы для создания '1984-03-19 Джон Доу' в качестве нового столбца. Затем я хочу взять список значений (есть файл .csv, содержащий DOB, Имя, Фамилию) в этом формате и извлекать Id из таблицы только при наличии совпадения.

В таблице миллионы строк, поэтому мне интересно, есть ли более эффективный способ написания этого запроса.

Это для специального запроса.

1 Ответ

1 голос
/ 28 октября 2019

Вы должны загрузить файл CSV в таблицу. Давайте назовем это CSV.

Мы назовем вашу исходную таблицу t.

Тогда вам понадобится простая JOIN:

select t.id
from csv join
     t
     on t.firstname = csv.firstname and
        t.lastname = csv.lastname and
        t.dob = csv.dob;

Вуаля! Готово. Без конкатенации.

Для производительности требуется индекс t(firstname, lastname, dob) со столбцами в любом порядке.

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