T-Sql, как вы фильтруете по случаю - PullRequest
1 голос
/ 10 августа 2011

Как вы фильтруете по случаю?

select * from address
where streetnum > 1000 only when state = MI otherwise select everything else

или

select * from address
where case when state = MI then streetnum > 1000

Ответы [ 2 ]

2 голосов
/ 10 августа 2011

Если я правильно интерпретирую ваш вопрос, тогда ...

select * from address 
where state <> 'MI' or (state = 'MI' and streetnum > 1000)
2 голосов
/ 10 августа 2011

Получить все строки из address, но когда state равно 'MI', тогда streetnum должно быть больше 1000.

select * from address
where streetnum > 1000 or state <> 'MI'

Если вы хотите использовать caseу вас, вероятно, есть более одного значения для проверки.

select *
from address
where case state
       when 'MI' then 1000
       when 'MA' then 1000
      else 0
      end < streetnum

И это будет то же самое, если использовать одно и то же значение (1000) для всех состояний.

select * 
from address
where streetnum > 1000 or state not in ('MI', 'MA')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...