Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Und gleich nochmal MAX(), diesmal mit MSSQL.

  Alt 16. Jan 2006, 20:16
Auch dir einen guten Abend.

Zitat von Ferber:
Vorab: Was ist die bessere (=schnellere) Formulierung ?
Select Top 1 Nummer from Nummern where Datum is null order by Nummer oder
Select MAX(Nummer) from Nummern where Datum is null
Bei der ersten fehlt ein abschließendes DESC, sonst sind die beiden Anfragen nicht äquivalent. Ob die eine teurer als die andere ist, das hängt vom Anfrage-Optimierer ab. Ohne einen Blick in den Ausführungsplan traue ich mir da kein Urteil zu.

Zitat von Ferber:
Warum warum liefert diese Formulierung einen Syntaxfehler ?
SET @Nummer = Select MAX(Nummer) as MaxNr FROM Nummern Wie krieg ich die grösste Nummer in eine lokale Variable ?
So sollte es funktionieren:

SQL-Code:
declare @Nummer int
set @Nummer = (select max(Nummer) from Nummern)
Zitat von Ferber:
Gibt es im SQL sowas wie einen "Aktuellen Datensatz" ?
Intern sicher, nach außen hin ist SQL eine Inkarnation des Relationen-Kalküls und da wird rein mengenorientiert gearbeitet.

Zitat von Ferber:
Bei Triggern gibts ja DELETED und INSERTED.
Das sind Pseudo-Tabellen, keine Cursor. Nur bei Cursorn kontrollierst DU die Iteration.

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat