Ich habe ein Paging-System für SQL-Server geschrieben. und es funktioniert gut, aber ich versuche, wie viele Seiten gibt es insgesamt zurückgegeben
Wenn also 5 Datensätze und 2 Datensätze pro Seite vorhanden sind, beträgt die Summe 3 Seiten
das ist was ich habe
%Vor%und mein Ausgabeparameter ist wie folgt definiert
%Vor%Nun funktioniert es irgendwie :-) In meinem Test gibt es 5 Datensätze und 2 Datensätze pro Seite, also gibt die obige Auswahl 2 zurück, aber es ist falsch, es sollte 3 sein
Dies ist, weil es 5/2 = ganze Zahl 2 ... wie richte ich aufrunden ...?
Ich habe die Decke müde, konnte sie aber nicht zur Arbeit bringen.
Irgendwelche Ideen?
Vielen Dank im Voraus
Haben Sie versucht, entweder den Zähler und den Nenner als Gleitkomma zu werfen und dann Cieling zu verwenden?
Ganzzahloperationen ergeben immer Ganzzahlen. Probieren Sie Folgendes -
%Vor%SQL Server gibt immer ein ganzzahliges Ergebnis, wenn Sie zwei Ganzzahlen teilen.
Sie können ein ".0" am Ende der tatsächlich hartcodierten Werte hinzufügen oder mit "1.0" multiplizieren, um einen Feldwert zu konvertieren. Wenn Sie aufrunden wollen, dann ist der beste Weg, den ich kenne, 0,5 zu addieren und dann die normale ROUND-Funktion aufzurufen. Das funktioniert, weil ROUND_DOWN (Nummer + .5) immer gleich ROUND_UP (Nummer) ist.
Sie können ein Feld auch manuell in einen Gleitkommabereich umwandeln, wie andere darauf hingewiesen haben.
Aber beachte das
%Vor%gibt ein Fließkomma Ergebnis zurück, während
%Vor%liefert ein Integer Ergebnis. Verwenden Sie also das, das am besten für Sie funktioniert.
All dies wird im folgenden Beispiel veranschaulicht:
%Vor%Hier ist eine Funktion, die Zusammenfassungen für Sie durchführt, zusammen mit einem SELECT, um Ihnen die Ergebnisse zu zeigen, die es gibt.
%Vor%Hier ein ähnlicher Code. Die CAST-Funktionen verhindern, dass SQL automatisch gerundet wird. Stellen Sie die 0.00 auf die gewünschte Genauigkeit ein.
%Vor%edit - Rundungsparameter korrigieren zu 0
Tags und Links sql-server stored-procedures rounding