Einzelnen Beitrag anzeigen

jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#5

AW: Alphanumerische Werte eingrenzen (ähnlich Between)

  Alt 14. Sep 2015, 17:02
@baumina

kannst du mir bitte für diese Aussage ein Beispiel nennen

Zitat:
Dem stimme ich zu, nur ganz selten macht es Sinn Bedingungen in den Join statt in die Where-Clause zu nehmen
Ich bin zwar nicht baumina, aber muss dazu auch meinen Senf loswerden.

Ich bin es von "oracle" sql gewohnt, ohne ANSI Join Syntax zu arbeiten, gefällt mir auch viel besser, ist aber tatsächlich wohl nur Gewohnheit.
Im "Oracle" Style schreibt man alles hinter das "where" und ist glücklich. Technisch kann man auch alles in die ANSI Join Notation reinquetschen, also sozusagen das Gegenteil des "Oracle" Style.
Mal abgesehen von den Vorschriften, die es gibt, die sowieso zur Trennung von join und Bedingung bzw. Filter anhalten.
Man nimmt sich einfach ohne Not die Übersicht(lichkeit) und nicht nur sich, auch den Kollegen.
Über die Join Notation formuliert man die Kriterien zur (korrekten) Mengenbildung, die Filter im Where dienen tatsächlich dann nur noch dazu, das Ergebnis auszusieben.
Das sieht vielleicht nach Erbsenzählerei aus, kann einem bei komplexen Abfragen aber durchaus mal den Kopf retten. Es trägt zum Verständnis der Abfrage bei und ist hilfreich bei der Fehlersuche und vielleicht sogar schon bei der Erstellung.

Etwas plastisch wird das vielleicht bei typischen Programmieraufgaben, wo eine Filtermaske implementiert werden muss. Was auch immer der User möchte, den zusammengesetzten Filterausdruck setzt ganz sorgenfrei in die Where Clause, genau da gehört er hin. Die Joinkriterien des Selectstatements bleiben unangetastet.
Gruß, Jo
  Mit Zitat antworten Zitat