![]() |
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? |
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. |
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. |
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. ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz