Перейти к содержанию

Как произвести выборку из базы данных?


Рекомендуемые сообщения

есть таблица table1. Есть список индексов, которые нужно выдрать из этой таблицы.

Пишу так:

select * from table1
where table1.pk in (1,2,4,7,9,...)

или

select * from table1
where table1.pk=1 or table1.pk=2 or ...

Но когда размер множества большой, вылетает с ошибкой. Что делать?

Также при записи в файл этого запроса - курсор доходит до определенного места и замирает там. Я так понял, стоит ограничение размера строки. Это видимо никак не лечится?

Ссылка на комментарий

X-tender, Firebird 2.1, кажись OLE...

Chaos, а как это в таблицу 2 запихать? Да и смысл потом в твоем запросе теряется, если есть таблица 2.

ps. я еще с этой темой не разобрался. Плохо в универе базы данных учил :( или плохо учили *20

Ссылка на комментарий

Vsadnik665, эт где на firebird'e базы данных изучают? Насколько я понял bind variables не используете? В первую очередь почитайте про них. Будет что-то вроде:


select *
from table t
where t in ?

Хотя и в данном случае, наверное, будет определенный предел кол-ву.

Насчет предложения Chaos: в данном случае лучше использовать global temporary table - оно будет хранить данные только на период сессии.

Ссылка на комментарий
  • 1 месяц спустя...

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...