Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Любое значение в условии where  [new]
Silence1
Member

Откуда: Питер
Сообщений: 131
Добрый предположим вечер.)

Select * from [table] where [column]=ANY

Есть ли в MSSQL какой-нибудь ключ (ANY) указывающий на то, что это может быть любое значение?
В моём случае [column] это поле типа integer. Т.е. в запросе нужно указать, что меня устроит любое число.
3 авг 09, 20:50    [7492596]     Ответить | Цитировать Сообщить модератору
 Re: Любое значение в условии where  [new]
Spartakich
Member

Откуда: Riga
Сообщений: 380
Чем вас не устраивает просто: Select * from [table] ?
3 авг 09, 20:55    [7492603]     Ответить | Цитировать Сообщить модератору
 Re: Любое значение в условии where  [new]
Silence1
Member

Откуда: Питер
Сообщений: 131
Тем, что в этом случае мне придётся создавать в asp.net два разных SqlDataSource. В одном будет с where, а в другом без. Хотелось бы работать с одним.
3 авг 09, 21:04    [7492614]     Ответить | Цитировать Сообщить модератору
 Re: Любое значение в условии where  [new]
Denis A.
Member

Откуда: Челябинск
Сообщений: 353
Silence1,

Select * from [table] where [column]=[column]

Это если она not null, если nullable:

select * from [table] where (([column is NOT NULL and [column]=[column]) or ([column] is NULL))
3 авг 09, 22:14    [7492738]     Ответить | Цитировать Сообщить модератору
 Re: Любое значение в условии where  [new]
Silence1
Member

Откуда: Питер
Сообщений: 131
Denis A.

Ага, спасибо! Интересно.
3 авг 09, 22:27    [7492764]     Ответить | Цитировать Сообщить модератору
 Re: Любое значение в условии where  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
Denis A.
Silence1,

Select * from [table] where [column]=[column]

Это если она not null, если nullable:

select * from [table] where (([column is NOT NULL and [column]=[column]) or ([column] is NULL))
column is NOT NULL лишнее
3 авг 09, 23:29    [7492929]     Ответить | Цитировать Сообщить модератору
 Re: Любое значение в условии where  [new]
Supra93
Member

Откуда:
Сообщений: 8174
WHERE 1=1
3 авг 09, 23:36    [7492955]     Ответить | Цитировать Сообщить модератору
 Re: Любое значение в условии where  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
Denis A.
Silence1,

Select * from [table] where [column]=[column]

Это если она not null, если nullable:

select * from [table] where (([column is NOT NULL and [column]=[column]) or ([column] is NULL))
а вобще-то неправильно
получается что если [column] is NULL он будет всегда выводиться
если действительно будет нужно чтобы значение с нулом играло роль, то придётся делать два параметра, т.е. как-то так, мне кажется так даже и лучше
Select * from [table] where [column]=:param1 or 1=:param2 
3 авг 09, 23:37    [7492958]     Ответить | Цитировать Сообщить модератору
 Re: Любое значение в условии where  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
SergSuper
Denis A.
Silence1,

Select * from [table] where [column]=[column]

Это если она not null, если nullable:

select * from [table] where (([column is NOT NULL and [column]=[column]) or ([column] is NULL))
а вобще-то неправильно
получается что если [column] is NULL он будет всегда выводиться
А разве не это требовалось? Только проще:
SELECT * FROM [table] WHERE [column]=[column] OR [column] IS NULL;
4 авг 09, 08:55    [7493462]     Ответить | Цитировать Сообщить модератору
 Re: Любое значение в условии where  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
SergSuper
Select * from [table] where [column]=:param1 or 1=:param2 
А как в случае чего получить [column] IS NULL?
4 авг 09, 08:56    [7493468]     Ответить | Цитировать Сообщить модератору
 Re: Любое значение в условии where  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Можно ещё вот так извратиться:
SELECT * FROM [table] WHERE EXISTS (SELECT [column] INTERSECT SELECT [column]);
(MS SQL Version>=9.0)

Можно и UNION для более старых версий задействовать. Но, IMHO, тормозить будет
4 авг 09, 09:05    [7493505]     Ответить | Цитировать Сообщить модератору
 Re: Любое значение в условии where  [new]
Silence1
Member

Откуда: Питер
Сообщений: 131
Всем спасибо.

Взял вариант SergSuper с двумя параметрами

SergSuper
Select * from [table] where [column]=:param1 or 1=:param2 


вариант с where [column]=[column] не прошёл.
Asp.net возмутился обнаружив на месте числового параметра строку в виде названия колонки.)

p.s. [column] не null. Не люблю я этот null.)
4 авг 09, 10:04    [7493793]     Ответить | Цитировать Сообщить модератору
 Re: Любое значение в условии where  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
iap
SergSuper
Denis A.
Silence1,

Select * from [table] where [column]=[column]

Это если она not null, если nullable:

select * from [table] where (([column is NOT NULL and [column]=[column]) or ([column] is NULL))
а вобще-то неправильно
получается что если [column] is NULL он будет всегда выводиться
А разве не это требовалось? Только проще:
SELECT * FROM [table] WHERE [column]=[column] OR [column] IS NULL;

проще, только неправильно
тогда будут выводиться всегда все записи где в поле null

iap
А как в случае чего получить [column] IS NULL?
я конечно могу написать, но Вам же будет стыдно что сами не сообразили ;)
4 авг 09, 11:10    [7494246]     Ответить | Цитировать Сообщить модератору
 Re: Любое значение в условии where  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
SergSuper
проще, только неправильно
почему неправильно? Согласно перому сообщению темы
надо так ограничить по полю [column], чтобы ничего не ограничить, так?
SergSuper
iap
А как в случае чего получить [column] IS NULL?
я конечно могу написать, но Вам же будет стыдно что сами не сообразили ;)
Мне не будет стыдно, не беспокойтесь.
Очевидно, Вы имели в виду :param2 = 1, да?
В таком случае получим [column] IS NULL среди всех прочих значений, правильно?
Я спрашивал, как получить только [column] IS NULL с помощью изображённых Вами "параметров"?
4 авг 09, 12:40    [7495079]     Ответить | Цитировать Сообщить модератору
 Re: Любое значение в условии where  [new]
Ramin Hashimzade
Member

Откуда: Азербайджан, Баку
Сообщений: 9979
Блог
Select * from [table] where [column]=isnull([column], :par1)

----
www.hramin.jino-net.ru
Картинка с другого сайта.
4 авг 09, 13:07    [7495269]     Ответить | Цитировать Сообщить модератору
 Re: Любое значение в условии where  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
iap
SergSuper
проще, только неправильно
почему неправильно? Согласно перому сообщению темы
надо так ограничить по полю [column], чтобы ничего не ограничить, так?
SergSuper
iap
А как в случае чего получить [column] IS NULL?
я конечно могу написать, но Вам же будет стыдно что сами не сообразили ;)
Мне не будет стыдно, не беспокойтесь.
Очевидно, Вы имели в виду :param2 = 1, да?
В таком случае получим [column] IS NULL среди всех прочих значений, правильно?
Я спрашивал, как получить только [column] IS NULL с помощью изображённых Вами "параметров"?
да, пардон, неправильно понял
легко ошибиться когда [column] то поле, то параметр
4 авг 09, 13:15    [7495320]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить