|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.06.2013, 08:10 | #1 |
Новичок
Джуниор
Регистрация: 27.06.2013
Сообщений: 3
|
Запрос в MSSQL
Подскажите кто-нибудь, как пользоваться конструкцией if else в mssql. Нужно сделать вариативную выборку в зависимости от параметров т.е. есть метод созданный через tableadapter и чтоб не писать новый метод для каждой выборки можно как-то сделать различные результаты в зависимости от параметров (нулевых переменных). Т.е. допустим запрос:
SELECT id FROM table WHERE (paramert1=@parametr1) AND (parametr2=@parametr2) Нужно сделать запрос что-то типо SELECT id FROM table WHERE id in (if @parametr1='' then select id from table else select id from table where parametr1=@parametr) AND (parametr2=@parametr2) Можно ли так делать вообще или может быть есть какие-то другие способы извлечения из бд с помощью одного метода, но с различными параметрами (допустим если 0, то все данные независимо от этого параметра, если параметр >0 то учитывая его значение) |
27.06.2013, 08:28 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
IF внешняя команда по отношению к SELECT. И использовать можно в таком духе:
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
27.06.2013, 08:31 | #3 |
Новичок
Джуниор
Регистрация: 27.06.2013
Сообщений: 3
|
Читал про case, но так и не понял как его использовать можно в данной ситуации. Я думаю когда люди делают разнообразные выборки из бд с разными параметрами, то они не пишут метод под каждый запрос, есть наверно какой-то более простой способ.. Меня это в мысле о запросе привело, но как сюда все это привязать незнаю
|
27.06.2013, 08:39 | #4 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 27.06.2013 в 08:42. |
|
27.06.2013, 08:57 | #5 | |
Новичок
Джуниор
Регистрация: 27.06.2013
Сообщений: 3
|
Цитата:
А данные как раз всегда одинаковые возвращаются, разные параметры (не всегда все корректно задаются, часто пропуски и надо с ними бороться. Спасибо за помощь, буду еще что-нибудь думать или тот вариант оставлю. Вопрос еще, если реально база разрастется со временем, то может лучше в самой программе определять т.к. софт на слабом пк будет работать Ох жесть надо мне спать больше, а то 3 часа сна видимо сильно сказываются. SELECT * from table WHERE (@param=0 or param=@param) AND (@param2=0 or param2=@param) Последний раз редактировалось Benderz; 27.06.2013 в 09:20. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Запрос - фильтрация mssql | ins813 | БД в Delphi | 5 | 05.10.2012 13:41 |
MsSql добавление параметров в запрос | Claster | Помощь студентам | 10 | 09.08.2012 12:45 |
MSSQL | Xe-Xe | SQL, базы данных | 4 | 31.10.2011 15:39 |
C# + MSSQL | dampirik | Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) | 3 | 17.12.2009 01:40 |
mssql + с# | dampirik | SQL, базы данных | 1 | 14.12.2009 19:03 |