Ich fand eine sehr interessante/seltsame Sache über MAX() -Funktion in SQL.
Ich habe Spalte ID mit varchar2 (20) Datentyp, mit folgenden Angaben: -
ID
Wie pro meinem Verständnis, wenn ich verwende "wählen Sie max (ID) aus der Tabelle"; Ich sollte 909 als Ergebnis bekommen, aber ich bekomme 99. Kann jemand erklären, warum das passiert?SQL MAX() Funktion
1
2
3
4
5
6
9
99
909
3
A
Antwort
5
Da die Spalte, für die Sie MAX on verwenden, vom Typ VARCHAR ist, werden die Werte basierend auf einer Zeichen-für-Zeichen-Auswertung sortiert. Es wählt 99 aus, weil 9> 0, und es ignoriert den Rest der Zeichenfolge.
9
Sie haben missverstanden - da die Spalte ein Varchar, nicht numerisch ist, ist es nach String-Werten sortiert; 909
kommt vor 99
, also 99
ist das Maximum.
Um den maximalen numerischen Wert Ihrer Spalte zu sehen, versuchen:
select max(to_number(ID)) from my_table
3
Ihre Spalte als Zeichen dargestellt wird, keine Zahlen. Stellen Sie sich also vor, Sie würden diese alphabetisch sortieren. Alphabetisch wird 909 in aufsteigender Reihenfolge vor 99 kommen.
Verwandte Themen
- 1. Problem mit max SQL-Funktion
- 2. Java ResultSet, mit MAX SQL-Funktion
- 3. T SQL Update Zeilen mit Max Funktion
- 4. SQL min() max() Funktion mit Ausnahme
- 5. SQLAlchemy 0.5.8 Max Funktion
- 6. BigQuery MAX() -Funktion
- 7. Python Max-by-Funktion?
- 8. SQL Max Parameter
- 9. SQL SELECT MAX (ID)
- 10. MAX (DATE) - SQL ORACLE
- 11. sql oracle max (summarum)
- 12. SQL max Datum Abfrage
- 13. SQL Windowing-Funktion: MAX (Datum) über Partition BY-Klausel
- 14. Oracle SQL - max() mit Nullwerten
- 15. Wie Max Max und Insert zusammen in pl sql verwenden
- 16. max Paare Funktion Standard ml
- 17. MAX-Funktion ohne Gruppe von
- 18. Worksheet Funktion Max mit Bedingung
- 19. SQL - GROUP BY max Wert
- 20. SQL - wo date = max date
- 21. Max der Summe in SQL
- 22. SQL max Zeile einer Tabelle
- 23. SQL: Filter Zeilen mit max Wert
- 24. Erste Max Wert von Multi Dimensional Array max Funktion Mit
- 25. SQL MAX-Datum in Where-Klausel
- 26. Linq to SQL: Varbinary (Max) inkrementelle Lesevorgänge
- 27. SQL Abfrage Max Wert einer Zusammenfassung
- 28. SQL - SELECT MAX() und begleitendes Feld
- 29. Bereich (min, max, Wert) Funktion in Java
- 30. Javascript Max() Funktion für 3 Zahlen
Könnten Sie SQL vorschlagen, die die Konvertierung durchführen und die Antwort liefern würde? Angenommen, wir können das Datenbankschema nicht immer einfach ändern, wenn wir es wollen. – DOK
@DOK: Wie oben? –
Kann ich bitte die Mechanik verstehen ... eine Referenz würde mir wirklich helfen. –