SQL DELETE

table_name = silinecek tablonun adı, örneğimiz için personel where_clause = silinecek filtreleyeceğimiz değer, örneğimiz için personelid = 1. WHERE komut isteğe bağlıdır, eğer WHERE komutu boş bırakılırsa istenen işlemler tüm satırlar için gerçekleştirilir. [code language=”sql”] DELETE FROM personel WHERE personelid > 1000 AND departman id = 60 AND city = ‘ISTANBUL’. [/code] Burada yine veritabanından SUBQUERY ile seçme yapıp orada istenen şarta uygun satırlar silinebilir. Aşağıdaki komut İstanbul’da yaşayan ve departmanid numarası departman tablosunda olmayan kayıtları silmektedir. [code language=”sql”] DELETE PERSONEL where city = ‘ISTANBUL’ AND departmanid NOT IN ( SELECT DEPARTMANID FROM DEPARTMAN ). [/code] Aşağıdaki komut ilgili departman bağlı calısıan sayısı 0 olan departmanları siler. Yapılan iş yukardaki satır ile aynıdır, Sadece komutların kullanım sekli farklıdır. [code language=”sql”] DELETE departman WHERE city = ‘ISTANBUL’ AND ( SELECT COUNT( * ) FROM personel WHERE personel.departmanid = departman.departmanid ) [/code] Yukarıdaki örnek bloğundan bağımsız bir başka DELETE yazım şekli ise aşağıdaki gibidir. [code lang=”sql”] DELETE FROM pacs_studytable WHERE STUDYID=’A090000161′; DELETE FROM KT_ISTEKLER WHERE VIZIT_ID=’A090004490′ AND VEZNE_OK IS NULL [/code] Tablodaki çift kayıtları silme: Delete duplicates records from one table: [code lang=”sql”] WITH zdp AS ( SELECT store, storeName, PosID, tarih, ROW_NUMBER() OVER ( PARTITION BY store, storeName, PosID, tarih ORDER BY store, storeName, PosID, tarih ) row_num FROM ZenDaiRep WHERE tarih = ‘2021-04-08’ ) DELETE FROM zdp WHERE row_num > 1; [/code] [code lang=”sql”] WITH oes AS ( SELECT ID, OrderKey, Status, ROW_NUMBER() OVER ( PARTITION BY OrderKey, Status ORDER BY OrderKey, Status ) row_num FROM OrdEInvSta ) DELETE FROM oes WHERE row_num > 1; [/code]]]>

Leave a Reply

Your email address will not be published. Required fields are marked *