AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken SQL (allg.): SELECT FIRST u.ä. oder <window clause>
Thema durchsuchen
Ansicht
Themen-Optionen

SQL (allg.): SELECT FIRST u.ä. oder <window clause>

Ein Thema von Jürgen Thomas · begonnen am 12. Sep 2009 · letzter Beitrag vom 15. Sep 2009
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#11

Re: SQL (allg.): SELECT FIRST u.ä. oder <window clause>

  Alt 15. Sep 2009, 10:17
Ich bin mir nicht ganz sicher, wie das zu deuten ist (aus meinem geposteten Link):
Zitat:
BETWEEN clause Use the BETWEEN clause to define the first and last row of the window, using the current row as a reference point. First and last rows are expressed in terms of the number of rows preceding and following the current row, respectively. For example, BETWEEN 3 PRECEDING AND 5 FOLLOWING sets the window to start with the third row preceding the current row, and end with the fifth row following the current row.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von IBExpert
IBExpert

Registriert seit: 15. Mär 2005
672 Beiträge
 
FreePascal / Lazarus
 
#12

Re: SQL (allg.): SELECT FIRST u.ä. oder <window clause>

  Alt 15. Sep 2009, 10:24
Ich hab mir schon vor Jahren abgewöhnt, irgendwelche Standards zu hinterfragen, eine 90% SQL kompatible Applikation ist meist kein Problem, 100% SQL kompatibel ist nur mit extremen Einschränkungen möglich. Da ich schon Erfahrung mit Firebird/Oracle/DB2 kompatibler Anwendungsentwicklung gemacht habe kenn ich diverse Konstrukte, die inkompatibel sind, aber auf db2 und Firebird war es relativ einfach, gemeinsam funktionierende SQLs zu entwickeln, die dann sogar noch das gleiche Ergebnis bringen, was übrigens keineswegs immer der fall ist, gerade Oracle hatte da durchaus weniger lustige Überraschungen parat.
Holger Klemt
www.ibexpert.com - IBExpert GmbH
Oldenburger Str 233 - 26203 Wardenburg - Germany
IBExpert and Firebird Power Workshops jederzeit auch als Firmenschulung
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#13

Re: SQL (allg.): SELECT FIRST u.ä. oder <window clause>

  Alt 15. Sep 2009, 10:32
Naja, ich hatte schon die Idee, ob <window clause> vielleicht ein "Fenster" innerhalb der gesamten Abfragemenge bezeichnen könnte; mit den ROWS-Parametern und den von Detlef zitierten Angaben würde dieses "Fenster" genauer positioniert. Aber die "current row" passt m.E. nicht dazu: Was soll die innerhalb einer Datenmenge bedeuten? Das deutet für mich eher auf einen Arbeitsablauf innerhalb einer StoredProcedure oder eines EXECUTE-Befehls hin.

Ich gebe zu, dass mein Englisch große Lücken aufweist, vor allem wenn es komplexe Satzkonstruktionen mit Fachbegriffen sind. Im Fall SQL brauche ich zusätzlich Beispiele; und die fehlen mir bei den allgemeinen SQL-Definitionen. Keine der speziellen DBMS-Dokumentationen, die ich ständig zu Rate ziehe (FB, MS, MySql, Oracle), verwendet den Begriff <window clause> im Zusammenhang mit SELECT FIRST u.ä. (sofern es dies überhaupt kennt).

Es geht mir hier auch gar nicht um kompatible SQL-Befehle, sondern um allgemein gültige Erklärungen für das WikiBook Einführung in SQL. Da muss schon alles korrekt sein; und wenn ich etwas selbst nicht richtig verstehe, wie soll ich es dann erläutern?

Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
Benutzerbild von IBExpert
IBExpert

Registriert seit: 15. Mär 2005
672 Beiträge
 
FreePascal / Lazarus
 
#14

Re: SQL (allg.): SELECT FIRST u.ä. oder <window clause>

  Alt 15. Sep 2009, 10:48
ist kein vorwurf an dich, sondern eher ein hinweis auf eine gesunde Kritik gegenüber
sogenannter Standards.

Ganz einfache Frage: Wann ist beim Fußball abseits?
Ganz einfache Antwort: Abseits ist wenn der Schiedsrichter abseits pfeift, wer auch immer wann wo rumgestanden hat

Das Problem sieht man an so ziemlich jedem Wochenende im Fernsehen und es gibt ungeheuer schlaue Definitionen der FIFA, wann der Schiedsrichter denn Abseits pfeifen sollte. Genau wie die Interpretation des Schiedsrichters immer die Spielsituation beinhaltet und das was er dabei gesehen hat, ist es für den Programmierer: Wer etwas realisiert die zum Beispiel eine rows anweisung muss Freiraum zur Interpretation haben .

Beispiel:

select * from
(select * from Tab1 rows 1 to 10) t1
join (select * from Tab2 rows 11 to 20) t2 on t2.id=t1.id
rows 5 to 15

ist in Firebird eine gültige Anweisung, aber in welcher reihenfolge arbeitet man das ab? erst join, dann rows, erst rows, dann join, erst innere rows, erst externe rows, ....

Ein Programmierer einer Datenbankengine muss eine Entscheidung treffen und diese kann sich nachträglich durchaus mal als abweichend vom später definierten Standard zeigen. Wenn aber dann schon Benutzer die nicht standardkonforme Umsetzung nutzen und sich auf deren Verhalten verlassen, dann ist eine nachträgliche Anpassung an der sogenannten Standard eher kontraproduktiv.

Ähnlich wie der Schiedsrichter macht der Programmierer oft Tatsachenentscheidungen und die einfach mal so zu ersetzen schafft selten Vertrauen.

Nähe am Standard ist sowohl für Programmierer als auch für Schiedsrichter hilfreich, aber der Standard sollte kein Gefängnis sein.
Holger Klemt
www.ibexpert.com - IBExpert GmbH
Oldenburger Str 233 - 26203 Wardenburg - Germany
IBExpert and Firebird Power Workshops jederzeit auch als Firmenschulung
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz