белая ошибка при использовании нескольких или & и условий в улье - PullRequest
0 голосов
/ 13 января 2020

Привет У меня есть таблица, как показано ниже temp_layer_table: -

id    count    name
1      0       v
2      3       r
1      5       t
4      0       f
4      6       g
2      0       r
3      6       r
3      0       g
5      0       t

Теперь мне нужно написать условие, где, если id равен 1 или 4 или 3 и count = 0 для всех 3 идентификаторов, то я должен устранить эти записи

id    count    name
2      3       r
1      5       t
4      6       g
2      0       r
3      6       r
5      0       t

Я пробовал ниже запрос улья, но не работает

код 1: -

insert into table final_layer_table 
select n.*
  from temp_layer_table n 
 where id = '1' 
   or  id = '4' 
   or  id = '3' 
  and count != '0' ;

code2: -

 insert into table final_layer_table 
 select n.*
   from temp_layer_table n 
  where id in ('1','4','3') 
    and count != '0' ;

Ответы [ 2 ]

1 голос
/ 13 января 2020

если id равен 1 или 4 или 3 и count = 0 для всех 3 идентификаторов, тогда я должен удалить эти записи

Я бы сформулировал это с условием not:

where not (id in (1, 3, 4) and count = 0)
0 голосов
/ 13 января 2020

Вы хотите строки, где либо:

  • Идентификаторы не 1, 3, 4; или
  • count <> 0.

Это будет:

where id not iN (1, 3, 4) or
      count <> 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...