powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Parameter or All in SQL statement
10 сообщений из 10, страница 1 из 1
Parameter or All in SQL statement
    #38756864
Ckey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет Всем,
пожалуйста помогите с тупым вопросом.
Например есть квери:

Код: sql
1.
2.
3.
4.
declare @Papa varchar (10)
set @Papa = 'Vasja'

select * from Semya where PapaName = @Papa



Вопрос в том как мне выбрать всех папа если сета нет?

пробовал так, не хорошо:

Код: sql
1.
2.
3.
4.
declare @Papa varchar (10)
--set @Papa = 'Vasja'

select * from dbo.Semya where PapaName = (@Papa,0)



Заранее спасибо!
...
Рейтинг: 0 / 0
Parameter or All in SQL statement
    #38756872
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ckey,

select * from dbo.Semya where PapaName = isnull(@Papa,PapaName)
...
Рейтинг: 0 / 0
Parameter or All in SQL statement
    #38756918
aleks2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgCkey,

select * from dbo.Semya where PapaName = isnull(@Papa,PapaName)

Идеологически порочное условие.

Надо так
Код: sql
1.
2.
3.
4.
5.
select * from dbo.Semya where @Papa is null or PapaName =  @Papa -- так хоть понятнее
-- или
select * from dbo.Semya where PapaName =  @Papa -- а так еще и быстрее
union all
select * from dbo.Semya where @Papa is null
...
Рейтинг: 0 / 0
Parameter or All in SQL statement
    #38756989
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks2alexeyvgCkey,

select * from dbo.Semya where PapaName = isnull(@Papa,PapaName)

Идеологически порочное условие.

Надо так
Код: sql
1.
2.
3.
4.
5.
select * from dbo.Semya where @Papa is null or PapaName =  @Papa -- так хоть понятнее
-- или
select * from dbo.Semya where PapaName =  @Papa -- а так еще и быстрее
union all
select * from dbo.Semya where @Papa is null

А так прикольно :
Код: sql
1.
SELECT * FROM dbo.Semya WHERE PapaName = ALL (SELECT @Papa WHERE @Papa IS NOT NULL);
...
Рейтинг: 0 / 0
Parameter or All in SQL statement
    #38757205
aleks2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iap
[/src]А так прикольно :
Код: sql
1.
SELECT * FROM dbo.Semya WHERE PapaName = ALL (SELECT @Papa WHERE @Papa IS NOT NULL);

[/quot]

Забавный прикол.
А как там с использованием индексов на dbo.Semya.PapaName будет?
Ибо если с индексами будет хорошо - прикол имеет практический смысл.
Только "понятность" подкачала, ну да это дело привычки.
...
Рейтинг: 0 / 0
Parameter or All in SQL statement
    #38757262
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks2,

с производительностью, кажется не очень.
По поводу понятности. Я впервые об этом узнал тут
Там daw приводит ссылку на ещё более раннее обсуждение 2005 года.
...
Рейтинг: 0 / 0
Parameter or All in SQL statement
    #38757599
Фотография Maxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iap
Код: sql
1.
WHERE PapaName = ALL 


а так че-то не так прикольна
...
Рейтинг: 0 / 0
Parameter or All in SQL statement
    #38757730
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ckey,

еще вариант без union all
но насчет значения верхней границы не уверен
Код: sql
1.
select * from Semya where PapaName between isnull(@Papa, '') and isnull(@Papa, replicate(0xFF, 8000))
...
Рейтинг: 0 / 0
Parameter or All in SQL statement
    #38757769
mittagswind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shakill, использование таких функций в условиях отметает возможность использования индексов.

"За изобретение ставлю пять, а по предмету – неуд" (с) Приключения Шурика
...
Рейтинг: 0 / 0
Parameter or All in SQL statement
    #38757789
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mittagswindShakill, использование таких функций в условиях отметает возможность использования индексов.

неправда ваша. границы получаются константами и индекс работает, в этом и весь смысл
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Parameter or All in SQL statement
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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