Me lo segno sul mio blog perché è una di quelle funzioni che mi servono raramente, ma che vengono utili in certe occasioni e fanno perdere sempre quei tre minuti da utilizzare meglio, come per bersi un caffè.
Ipotizzando di avere la tabella:
cod (chiave) | articolo | data |
1 | aaaa | 1/1/2000 |
2 | aaaa | 1/1/2000 |
3 | aaaa | 2/1/2000 |
4 | bbbb | 3/1/2000 |
5 | bbbb | 3/1/2000 |
Se volessi cancellare tutti i record che hanno articolo e data duplicato, posso scrivere:
delete test_cancellazione from test_cancellazione tc1 left join (select min(cod) as cod from test_cancellazione group by articolo, data ) tc2 on tc1.cod=tc2.cod where tc2.cod is null
Una volta eseguito questo codice la tabella si ridurrebbe a questi record:
cod (chiave) | articolo | data |
1 | aaaa | 1/1/2000 |
3 | aaaa | 2/1/2000 |
4 | bbbb | 3/1/2000 |
Se volessi, invece, cancellare tutti i record che hanno solo il campo articolo uguale, dovrei inserire solo il nome di quel campo nel group by della query qui sopra.
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
- Docker Swarm e constraint in un mondo reale, il 29 dicembre 2016 alle 18:04
- Docker + Consul + Registrator, il 23 dicembre 2016 alle 14:48
- AMD/UMD in javascript, tanto per ricordarmi, il 15 dicembre 2016 alle 18:54
- Asp.net Core, Docker e Docker Swarm, il 5 dicembre 2016 alle 19:02
- Seneca.js, message broker e infine Consul, il 3 agosto 2016 alle 20:59
- Cross apply con i campi XML, il 10 luglio 2009 alle 09:22