![]() |
Re: Hilfe bei SQL Abfrage Firebird
Zitat:
|
Re: Hilfe bei SQL Abfrage Firebird
Hallo Burn,
die Frage mit dem Vorhandensein von entsprechenden Daten, meinte ich nicht böse, sorry, wenn es so rübergekommen ist. Das darf sein:
Es werden nur Inhalte verglichen, bei denen in Feld1 ein Wert steht, der genau 7 Zeichen lang ist. Demnach wird hier keiner der von Dir aufgeführten falschen Werte gefunden. Ausgehend von Deinen Beispieldaten gehe ich einmal davon aus, das Dir 3 Zeichen vor / und \ bekannt sind, das dann 5 Ziffern und eventuell ein Buchstabe folgen. Damit kommen wir eventuell weiter: Wir setzen in den Filter das, was richtig ist:
Delphi-Quellcode:
sagen der Datenbank aber, dass wir genau das nicht gefunden haben wollen, indem wir vor das like ein NOT stellen:
TextTeil1 := 'abc';
TextTeil2 := '12345'; s := AnsiUpperCase(TextTeil1 + '_' + TextTeil2 + '_');
Delphi-Quellcode:
Hoffe, das bringt Dich jetzt weiter.
QSuche.SQL.Add('Select Feld1, Feld2, Feld3 from Tabelle where ');
QSuche.SQL.Add('UPPER(FELD1 COLLATE DE_DE) NOT like ' + QuotedStr(s)); Stephan |
Re: Hilfe bei SQL Abfrage Firebird
@mkinzler
Das teste ich heut abend mal aus ... jetzt leider keine Zeit ... @Hansa DB -> 105 Tabellen -> Die Tabelle die ich abfrage hat im Moment ca. 50000 Datensätze @nahpets Zitat:
Zitat:
und dann etweder mit Buchstabe oder auch ohne ... Also wird das nix mit der Abfrage mit NOT. mfg Burn |
Re: Hilfe bei SQL Abfrage Firebird
@mkinzler
Hab mir doch mach schnell die Zeit genommen für eine Testabfrage mit den Substring.. (Lassen wir mal meine eigentliche Arbeit einfach liegen :mrgreen:) Das könnte tatsächlich funzen ... werde das aber heute abend nochmal genauer untersuchen. Danke Dir schon mal den Tip... Melde mich wieder falls das Problem noch nicht behoben sein sollte.. Auch Dank an die anderen die mir helfen wollten ... :dp: Schönes WE ... mfg Burn |
Re: Hilfe bei SQL Abfrage Firebird
Ist halt nicht so performant
|
Re: Hilfe bei SQL Abfrage Firebird
Hallo,
heute bin ich schwer von Begriff: Das darf sein (wobei a für einen beliebige Buchstaben steht)?
Sind die ersten drei Zeichen hinter / und \ auch immer gleich? Würde das bedeuten, dass die von Dir gesuchten Werte immer kleiner oder größer als Dein Suchbegriff wären? Dann könnte das helfen:
SQL-Code:
Stephan
select * from tabelle
where upper(feld1 collate DE_DE) < upper('abc/12345') or upper(feld1 collate DE_DE) > upper('abc/12345z') or upper(feld1 collate DE_DE) < upper('abc\12345') or upper(feld1 collate DE_DE) > upper('abc\12345z') |
Re: Hilfe bei SQL Abfrage Firebird
@mkinzler
Jep hab ich grad gemerkt ... Und noch ein Problem tritt auf: Wie mach ich das: ich will alles zu 123 finden: also 123, 123a, 123b aber nicht 1234, 1235 etc @ stephan Das teste ich alles heut abend ... ich glaub mein Hirn platzt gleich :wall: zu viel Input :mrgreen: Zitat:
2. nein. mfg Burn |
Re: Hilfe bei SQL Abfrage Firebird
SQL-Code:
... where Upper(name) Starting with 'ABC' and upper(substring( name from 4 for 1)) in ('A'..'Z') and ...
|
Re: Hilfe bei SQL Abfrage Firebird
@ mkinzler
Zitat:
edit : Aber es geht
Delphi-Quellcode:
Und nun is Ende Gelände ... Muss erstmal den ganzen Input von heute aufn Punkt bringen...
in ('A','B','C','D')
Und dann schaun mer mal.. Nu aber wirklich ... Schönes WE ... :dp: mfg Burn |
Re: Hilfe bei SQL Abfrage Firebird
Oh war ja Delphi Syntax
aber
SQL-Code:
sollte gehen
Between 'A' and 'Z'
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:20 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 by Thomas Breitkreuz