Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Можно ли использовать оператор Case в выражениии Where / 7 сообщений из 7, страница 1 из 1
14.05.2001, 13:26
    #32005591
Ivan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли использовать оператор Case в выражениии Where
Ну чтонибудь похожеее на select * Where Case When @a is null Then True Else a = @a End
...
Рейтинг: 0 / 0
14.05.2001, 13:32
    #32005592
Можно ли использовать оператор Case в выражениии Where
помоему нет но можно так
( ( @a is not null and a = @a ) or ( @a is null ) )
...
Рейтинг: 0 / 0
14.05.2001, 13:49
    #32005593
Ivan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли использовать оператор Case в выражениии Where
Можно еще короче
( a = @a or @a is null )
...
Рейтинг: 0 / 0
14.05.2001, 14:13
    #32005596
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли использовать оператор Case в выражениии Where
Вообще Case можно писать и в выражениии Where, и в Order by и где угодно. Но вопрос как я понял в другом.
В TSQL нет типа boolean и соответственно нет переменных true и false. Т.е. если уж дословно (или "дооператорно") переписывать запрос, то надо написать что-то вроде:
select * Where 1=Case When @a is null 1 when a = @a then 1 else 0 End
Ну еще from нужен конечно.
...
Рейтинг: 0 / 0
14.05.2001, 15:52
    #32005601
Alexander Chepack
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли использовать оператор Case в выражениии Where
Еще короче:

where (a=IsNull(@a,a))

-- не знаю как будет работать если a содержит NULL.
-- ну не оптимизируется такой поиск - т.е. для таблиц с миллионами строк не стоит применять.
...
Рейтинг: 0 / 0
17.05.2001, 21:36
    #32005832
Garya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли использовать оператор Case в выражениии Where
А в чем выражается нерабочесть такой конструкции? Я использую точно такую же конструкцию, только проверяю на Is Null значение конкретного поля таблицы. Все работает. MS SQL 2000.
...
Рейтинг: 0 / 0
18.05.2001, 14:25
    #32005871
Alexander Chepack
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли использовать оператор Case в выражениии Where
Я не говорил, что это не работает, я говорил, что это не оптимизируется - т.е. если это единственное условие при - поиске индексы использоваться не будут...
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Можно ли использовать оператор Case в выражениии Where / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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