SQL-запрос для ссылки на большой список значений в where xxcolumnxxx в (список тысяч) (т.е. Создание подмножества, которое может сохраняться между запросами?)

#sql #sql-server #billing #ndc

#sql #sql-server #выставление счетов #ndc

Вопрос:

Мне нужно запросить таблицу SQL и извлечь строки, если значение в столбце NDC_CODE входит в мой список значений.

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

Я знаю, что могу выделять / объединять / копировать-вставлять оператор ‘where’ вместе: где RX_NDC.NDC_CODE в (‘ndc1′, ’ndc2’, ‘ndc3’, …, ’ndc8523’)

Мои вопросы:

  1. если я запущу код с оператором where, как указано выше, вручную перечисляя тысячи значений, будет ли использоваться много ресурсов и блокировать сервер?
  2. Возможно ли локально создать «подмножество», на которое я могу ссылаться в коде, и сохранить это подмножество в нескольких запросах?
  3. Я читал о создании временных таблиц, но у меня есть доступ только для чтения к этой базе данных. Есть ли какой-нибудь способ создать временную таблицу локально и ссылаться на нее в моем запросе?

Комментарии:

1. Вам нужно указать, какую СУБД вы используете (например, SQL Server, Oracle, MySQL). Обычно лучше создать временную таблицу для такого большого списка и ПРИСОЕДИНИТЬСЯ к нему, а не иметь огромный IN-list — но это будет зависеть от СУБД относительно того, как вы можете это сделать.

2. Спасибо, Фред, я использую Sql server management studio. Я посмотрю, смогу ли я углубиться в то, как создать временную таблицу.

3. Используйте табличную переменную или временную таблицу. Если вы используете C #, вы можете передать параметр с табличным значением.