Гость
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Составить запрос по условию / 2 сообщений из 2, страница 1 из 1
23.08.2012, 14:06
    #37927974
hexes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Составить запрос по условию
Доброго дня, возможно вопрос нубский, но не соображу как решить:

Пишу хранимку, в неё могут передать параметр @GenreName (а могут и не передать, будет NULL).
Нужно решить, подключать доп. таблицу к запросу или нет, можно написать:
Код: plsql
1.
2.
3.
4.
if(@GenreName is NULL)
SELECT * FROM seansi WHERE blaabla
else
SELECT * FROM seansi s, genre g WHERE seansi.idgenre=g.idgenre AND g.genrename=@GenreName



И всё бы ничего, но таких входных параметров от 5.
Т.е. на if-ах такое построить и поддерживать ОЧЕНЬ проблематично.
Как быть? Как красивее решить задачу?
...
Рейтинг: 0 / 0
24.08.2012, 20:13
    #37929849
escapist
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Составить запрос по условию
hexes,

Если в лоб,то я б писал так:
Код: sql
1.
2.
SELECT*FROM seansi AS s
JOIN genre AS g ON s.idgenre=g.idgenre AND (@GenreName IS NULL OR g.genrename=@GenreName)


Ну и естественно,под * упоминал конкретные необходимые поля.По аналогии расширяется на сколько угодно таблиц.По-идее,сильно на производительности сказаться не должно
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Составить запрос по условию / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]