Datenbank Forum - für Anfänger und Profis

Willkommen im Datenbank Forum von Datenbanken-verstehen.de - Das Datenbank, Data Warehouse & Business Intelligence Forum!

Das Datenbank Forum für Anfänger und Profis ist eine Community zu den Themen Datenbanken, Data Warehouse & Business Intelligence. Nimm teil an der Community von Datenbanken-verstehen.de und tausch dich mit deinen Fragen und Lösungen mit anderen Nutzern aus.

Als registrierter Benutzer genießt Du viele Vorteile, wie

  • den vollen Zugang zu allen Foren und Unterforen
  • Kostenloses Lernmaterial inkl. Lösungen zum Thema Datenbanken
  • Zugriff auf DB-Tutorials, Best Practices und SQL-Snippets

Bevor Du einen Beitrag verfassen möchtest, kannst Du dich einfach kostenlos registrieren.

oder Einloggen mit



Beachte bitte die Forenregeln von Datenbanken-verstehen.de. Wir wünschen Dir viel Spaß im Datenbank Forum! - Dein Datenbanken-verstehen.de-Team

SQL Delete und Like funktionieren nicht zusammen

Alles zum Thema Datenbankentwicklung...

SQL Delete und Like funktionieren nicht zusammen

Beitragvon Martina » Di 7. Okt 2014, 14:56

Hallo zusammen,

ich versuche gerade mit einem SQL Delete Statement bestimmte Datensätze meiner Datenbank zu löschen.
Dabei verwende ich auch das Like-Statement, um bestimmte Datensätze zu löschen.

Wichtig ist vielleicht auch noch zu erwähnen, dass die Spalte den Datentyp Datetime besitzt.

Hier ein Beispiel:

Code: Alles auswählen
DELETE FROM KUNDEN WHERE UPDDAT LIKE '2014-07%'


Für jede Hilfe wäre ich dankbar (bitte keine Links oder so, sondern bezogen auf mein Beispiel)

LG,
Martina
Martina
 
Beiträge: 12
Registriert: Sa 2. Nov 2013, 14:54

Re: SQL Delete und Like funktionieren nicht zusammen

Beitragvon Yellow » Di 7. Okt 2014, 15:32

Hallo Martina,

ich kann dir jetzt zwar eine Lösung hinschreiben (z.B.
Code: Alles auswählen
WHERE DateColumn >= @date AND DateColumn < DATEADD(DAY, 1, @date);
- wobei die 1 für die Anzahl der Tage steht für die dein Zeitraum gilt), aber daraus kannst Du weniger lernen als wenn ich dir einen schönen Link zu einem Blogartikel schreibe in dem verschiedene Alternativen beschrieben werden und was daran schlecht ist bzw. sein könnte.

http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/16/bad-habits-to-kick-mishandling-date-range-queries.aspx

-yellow
Yellow
 
Beiträge: 77
Registriert: Do 8. Mai 2014, 16:46

Re: SQL Delete und Like funktionieren nicht zusammen

Beitragvon RainerH » Di 7. Okt 2014, 15:35

Die Lösung ist ganz einfach :D

Caste bzw. konvertiere deine Tabellenspalte in ein Varchar, dann kannst Du den Like-Operator anwenden.

Gruß,
RainerH
Nimm NICHTS persönlich -- alles ist Feedback...
RainerH
 
Beiträge: 221
Registriert: Fr 1. Nov 2013, 17:58

Re: SQL Delete und Like funktionieren nicht zusammen

Beitragvon Yellow » Di 7. Okt 2014, 16:19

Hallo RainerH,

das ist in meinen Augen keine gute Lösung, it smells, it's dirty.

-yellow
Yellow
 
Beiträge: 77
Registriert: Do 8. Mai 2014, 16:46

Re: SQL Delete und Like funktionieren nicht zusammen

Beitragvon RainerH » Di 7. Okt 2014, 23:15

Naja,

theoretisch kannst Du auch die LEFT- bzw. Substring-Funktion benutzen.
So gehts auch ;)

@yellow: Bitte begründe deine Aussage. In einigen Projekten habe ich das schon gesehen
Nimm NICHTS persönlich -- alles ist Feedback...
RainerH
 
Beiträge: 221
Registriert: Fr 1. Nov 2013, 17:58

Re: SQL Delete und Like funktionieren nicht zusammen

Beitragvon Yellow » Mi 8. Okt 2014, 10:55

Hallo Martina,
hallo RainerH,

@Bitte Begründe deine Aussage:

auch das wird in dem von mir oben genannten Artikel gezeigt - http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/16/bad-habits-to-kick-mishandling-date-range-queries.aspx.

Aber nochmal in Kurzform:
Du castest zwar mit varchar die Spalte in einen String, aber nicht im korrekten Format. Dazu müsstest du schon in einen CHAR(8) mit Style 112 konvertieren:
Code: Alles auswählen
WHERE CONVERT(CHAR(8), DateColumn, 112) LIKE '201407%';
Das ist insofern eine schlechte Idee, da die Abfrage-Bedingung nun non-sargable ist, was wiederum eine negative Auswirkung auf die Perfomance der Abfrage hat.

Hierzu eventuell auch interessant: Optimierung von Datenbankmodellen - SargAble Abfragen
http://db-berater.blogspot.de/2012/11/optimierung-von-datenbankmodellensargab.html

@In einigen Projekten habe ich das schon gesehen:

Daher sage ich ja... it's dirty, it smells...

-yellow
Yellow
 
Beiträge: 77
Registriert: Do 8. Mai 2014, 16:46

Re: SQL Delete und Like funktionieren nicht zusammen

Beitragvon Martina » Mo 13. Okt 2014, 17:27

Hallo zusammen,

danke Rainer für den wertvollen Tipp. Das ist genau das,was ich gesucht habe.
=> Und es hat funktioniert ;)

@yellow: Dir auch auch ein großes Dankeschön für die professionelle Variante...

LG,
Martina
Martina
 
Beiträge: 12
Registriert: Sa 2. Nov 2013, 14:54


Zurück zu Datenbankentwicklung Allgemein

 


  • Related topics
    Antworten
    Zugriffe
    Letzter Beitrag

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

  • Jetzt Fan werden
  • Newsletter abonnieren? Hier anmelden!

    Alle Informationen aus dem Portal, Blog und Forum in einem Newsletter!

    E-Mail-Adresse: