Hai saya punya tabel seperti di bawah ini 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

Sekarang saya perlu menulis kondisi di mana jika id adalah 1 atau 4 atau 3 dan count = 0 untuk semua 3 id maka saya harus menghilangkan catatan itu

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

Saya telah mencoba kueri di bawah sarang tetapi tidak berhasil

Kode 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' ;

Kode2:-

 insert into table final_layer_table 
 select n.*
   from temp_layer_table n 
  where id in ('1','4','3') 
    and count != '0' ;
0
Rahul Varma 13 Januari 2020, 11:46

2 jawaban

Jawaban Terbaik

jika id adalah 1 atau 4 atau 3 dan count = 0 untuk semua 3 id maka saya harus menghilangkan catatan itu

Saya akan mengungkapkan ini dengan kondisi not:

where not (id in (1, 3, 4) and count = 0)
1
GMB 13 Januari 2020, 08:54

Anda ingin baris di mana:

  • Idnya bukan 1, 3, 4; atau
  • hitung <> 0.

Itu akan menjadi:

where id not iN (1, 3, 4) or
      count <> 0
0
Gordon Linoff 13 Januari 2020, 12:42