Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Vergleich größer als mit Buchstabe im Feld (https://www.delphipraxis.net/214836-vergleich-groesser-als-mit-buchstabe-im-feld.html)

zeras 17. Mär 2024 08:13

Datenbank: SQLite • Version: 3 • Zugriff über: FireDac

Vergleich größer als mit Buchstabe im Feld
 
Ich habe in einer Datenbank Einträge wie "S13", "S14", "S141" etc.
Kann ich mit einer Abfrage den Buchstaben weglassen und die Zahl dahinter mit ">=" vergleichen"?
Spalte ist ja als Varchar definiert.
Ansonsten muss ich neue Spalten erzeugen, wo die Zahl dann als SmallInt definiert ist. Oder gibt es noch andere Möglichkeiten?

Papaschlumpf73 17. Mär 2024 08:55

AW: Vergleich größer als mit Buchstabe im Feld
 
Aufm SQL-Server würde ich das so hier machen - bei SQLite gibt es sicher ähnliche Funktionen

SELECT TRY_CAST(SUBSTRING('S14',2, LEN('S14')-1) AS int)
bzw.
SELECT TRY_CAST(SUBSTRING(DeineSpalte,2, LEN(DeineSpalte)-1) AS int)

Also quasi den Buchstaben entfernen und den Rest in eine Zahl umwandeln.
Obwohl, die saubere Variante wäre wohl eine eigene Spalte ohne Buchstaben drin.

zeras 17. Mär 2024 11:11

AW: Vergleich größer als mit Buchstabe im Feld
 
Danke für den Tipp.
Ich wusste garnicht, dass man in den Abfragen noch solche Funktionen unterbringen kann.
Das werde ich einmal mit SQLite probieren, ob es da auch diese Möglichekeit gibt.

himitsu 17. Mär 2024 11:16

AW: Vergleich größer als mit Buchstabe im Feld
 
Jupp, wenn es so einfach ist, dann selbst zerlegen

Wenn Buchstabe nicht immer gleich, dann diesen zuerst vergleichen
und wenn gleich, dann den Rest in eine Zahl konvertieren und sie vergleichen.


Bei Google suchensqlite natural sort


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:58 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