|
|||||||||||||||||||||
1 | |||||||||||||||||||||
Как составить запрос в хранимой процедуре с возможностью передачи NULL параметров17.08.2012, 15:01. Показов 7269. Ответов 6
Метки нет (Все метки)
Есть хранимая процедура, которая не работает как надо. Она используется для поиска данных в базе по переданным параметрам.
Это метод класса (вызываю хранимую процедуру я не этим методом, это просто пример того как я строю запрос без хранимой процедуры):
0
|
17.08.2012, 15:01 | |
Ответы с готовыми решениями:
6
Выходной параметр в хранимой процедуре возвращает null Передача параметров в хранимой процедуре Проверка входных параметров в хранимой процедуре Использование не всех параметров в хранимой процедуре |
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,271
|
|||||||||||
17.08.2012, 16:13 | 2 | ||||||||||
Да?! Интересно.
Вообще-то, получим
ибо из-за NULL второе условие вернёт UNKNOWN. Это если не установлен SET CONCAT_NULL_YIELDS_NULL OFF Но в ближайшей версии сервера всегда будет ON. И сейчас рекомендуется ON
1
|
|
|
17.08.2012, 18:23 [ТС] | 3 |
Я говорил про код C#.
Добавлено через 1 час 4 минуты Не работает код, который вы дали. Не работает так, как мне нужно. Есть 3 строки поиска в программе "Имя", "Почтовый индекс", "Номер телефона". Человек вводит в поиск данные и программа отправляет запрос хранимой процедуре, но реально можно что-то найти таким поиском, если введены все 3 параметра поиска, а пользователь может ввести их в любой комбинации. При том номер телефона в базе данных может быть NULL, всё остальное не может. Я уже замучался составлять этот запрос, так и не составил.
0
|
|
|
17.08.2012, 18:45 [ТС] | 4 |
Если запрос составлять в коде C# и отправлять его напрямую без хранимой процедуры, то я могу составлять любые комбинации этого запроса, которые я выше показывал, а вы не поняли меня. А вот в хранимой процедуре как описать не знаю.
Добавлено через 18 минут Если "Имя" равно пустая строка, то не учитывать вообще имя в запросе SELECT * FROM, если "почтовый индекс" равен пустой строке, то не учитывать и его. Ну это примерно так. Пускай вообще нельзя передавать параметры NULL, если передана пустая строка, то не учитывать её в условии поиска. Вот как это сделать?
0
|
3856 / 1383 / 486
Регистрация: 31.05.2012
Сообщений: 4,853
|
|
17.08.2012, 22:24 | 5 |
Можно в той же процедуре не загромождать WHERE анализами на NULL и OR-ами, а сформировать условие и сам запрос динамически и выполнить EXEC (@s)
0
|
|
|
18.08.2012, 10:54 [ТС] | 6 |
Может и можно, но чувствую, чтобы я это мог делать сам, мне надо недели 2 сидеть книгук читать и примеры с неё делать, а я пока учу вообще работу с базами данных на C#. T-SQL ещё успеется, там в C# вообще столько всего, что можно учить не один год.
0
|
3856 / 1383 / 486
Регистрация: 31.05.2012
Сообщений: 4,853
|
||||||
19.08.2012, 12:08 | 7 | |||||
1
|
19.08.2012, 12:08 | |
19.08.2012, 12:08 | |
Помогаю со студенческими работами здесь
7
Запрос по хранимой процедуре Запрос в хранимой процедуре Запрос SQL в хранимой процедуре Запрос из строковой переменной в хранимой процедуре Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
КуМир, исполнитель Водолей: Задачи и решения
bytestream 28.01.2025
КуМир — это образовательная среда для обучения программированию. Она предлагает пользователям разнообразные инструменты для разработки и отладки программ, что особенно ценно для студентов и. . .
|
КуМир, исполнитель Чертежник: Решение задач
bytestream 28.01.2025
КуМир (Комплект Учебных МИРов) представляет собой образовательную среду для обучения основам программирования и алгоритмизации.
Исполнитель Чертежник работает на координатной плоскости, где может. . .
|
Rust или Go? А может C++?
hw_wired 28.01.2025
С каждой новой технологией или методологией появляются новые языки программирования, призванные решать конкретные задачи либо улучшать аспекты производительности и безопасности. Среди множества. . .
|
Fortran и WinAPI: как создать приложение с графическим интерфейсом
hw_wired 28.01.2025
Fortran — это один из старейших высокоуровневых языков программирования, широко используемый в науке и инженерии уже несколько десятилетий. Его название происходит от "Formula Translation" (перевод. . .
|
Списки в Haskell
hw_wired 28.01.2025
Haskell является функциональным языком программирования, который отличается лаконичностью синтаксиса и мощными абстракциями. Важным концептом в Haskell являются списки — упорядоченные коллекции. . .
|
Функции высшего порядка в Haskell
hw_wired 28.01.2025
Haskell – это современный функциональный язык программирования, который получил широкое распространение благодаря своей выразительности и мощным абстракциям. Одной из ключевых особенностей Haskell. . .
|
Как в цикле обойти все поля объекта в JavaScript
bytestream 28.01.2025
Объекты в JavaScript представляют собой фундаментальные структуры данных, которые позволяют хранить и организовывать связанную информацию в виде пар ключ-значение. Каждый объект можно представить как. . .
|
Как выбрать строки в DataFrame по значению столбца в Pandas
bytestream 28.01.2025
В области анализа данных библиотека Pandas стала незаменимым инструментом для работы с табличными данными в Python. Эта мощная библиотека предоставляет множество функций для эффективной обработки и. . .
|
Как сделать перенос строки в Bash
bytestream 28.01.2025
При работе с командной оболочкой Bash разработчики часто сталкиваются с необходимостью форматирования текстового вывода, где ключевую роль играет правильное управление переносами строк. Умение. . .
|
Поиск подстроки в строке с помощью Bash
bytestream 28.01.2025
Поиск подстроки в строке является одной из важных задач в программировании и обработке текстов. Применение такого поиска можно найти в самых разных областях, от анализа данных до разработки. . .
|
[golang] 169. Majority Element
alhaos 28.01.2025
Тут надо вернуть "мажористый" элемент который встречается в слайсе больше чем в половине случаев. По условиям задачи во входных данных такой элемент обязан присутствовать.
/ / . . .
|
Когда лучше использовать LinkedList вместо ArrayList в Java
bytestream 28.01.2025
При разработке Java-приложений выбор правильной структуры данных играет ключевую роль в обеспечении эффективности и производительности программы. ArrayList и LinkedList являются двумя. . .
|