Использование набора чисел в базе данных без создания временной таблицы - PullRequest
0 голосов
/ 03 мая 2010

У меня есть набор чисел и таблица в базе данных со столбцами id (первичный ключ) и text (не ноль). Я хотел бы создать запрос, который возвращает все числа в наборе и связанный текст из таблицы. К сожалению, не все числа существуют в столбце id базы данных, поэтому это не будет работать:

select id, text
from table
where id in (<set of numbers>)

Для несуществующих идентификаторов лучше всего было бы вернуть null в качестве текста из запроса.

Есть ли способ произвести желаемый вывод без предварительного создания временной таблицы из набора внутри базы данных?

Используемым механизмом базы данных является Microsoft SQL Server 2008 с пакетом обновления 1 (SP1), но мне было бы интересно любое решение с любым механизмом базы данных.

1 Ответ

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

Решения сильно зависят от базы данных

  • У mysql нет хороших способов сделать это без временных таблиц
  • oracle может очень эффективно выполнять запрошенные рекурсивные запросы (подробности здесь )
  • ms sql может делать это с рекурсивными запросами, но я не знаю, насколько эффективно

Проверьте связанную статью и посмотрите, какой из запросов поддерживает MS SQL 2008 и как он выполняет их.

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