![]() |
unscharfe suche mit like und variablen
Folgendes Problem:
Eine Stored Procedure bekommt eine Char Variable übergeben (stelle). Nun mochte ich diese Variable in der where bedingung eines selechts verwenden, es sollen aber alle werte gefunden werden die mit dem Wert der variablen beginnen. also
SQL-Code:
Bloß dieser code geht nicht..kann mir vlt. jemand helfen der in SQL Syntax bissl sicherer is? Geht das überhaupt so?
select * from tabelle where wert like (:stelle + '%')
|
Re: unscharfe suche mit like und variablen
Hai Nightfly,
im Prinzip sieht es ja gut aus. Wie übergibst Du denn ":stelle" an dein Query? Als Parameter? Versuche doch mal das '%' mit dem String zu übergeben und nicht im SQL-Befehl zu schreiben. Also
SQL-Code:
stelle := 'keine Ahung' + '%';
select * from tabelle where wert like (:stelle)
|
Re: unscharfe suche mit like und variablen
Nachfolgende Anweisung findet alles was mit "stelle" beginnt
Code:
select * from tabelle where wert like 'stelle%'
|
Re: unscharfe suche mit like und variablen
dein erstes Beispiel muss gehen. Oder die DB spinnt. :mrgreen:
Ich benutze das in ähnlicher Weise selbst und es klappt... |
Re: unscharfe suche mit like und variablen
Achja,das vergaß ich zu erwähnen.
Es handelt sich um eine Stored Procedure auf einem Firebird Server, welche halt eine input variable stelle hat. Sowas: stelle := 'keine Ahung' + '%'; quitiert er mit: expression evaluation not supported. Normalerweise rufe ich die Prozedur so auf: select * from MyProc('01') Ändere ich das in select * from MyProc('01%') findet er garkeine Datensätze mehr :( JA, die where klausel habe ich von where (tabelle.stelle = :stelle) in where tabelle.stelle like :stelle geändert. Hat noch jemand ne idee? |
Re: unscharfe suche mit like und variablen
@Robert_G
beim Compilieren bekomme ich da expression evaluation not supported. Heißt das Firebird kann das nich? Oder hab ich falsche datentypen? Gibts nen trick? edit: egal ob stelle char oder varchar ist, der fehler bleibt |
Re: unscharfe suche mit like und variablen
Du konkatinierst falsch!
In SQL & PL/SQL werden Strings durch || zusammengesetzt (Dieser komische SP-Dialekt von FB/IB wird sich da wohl auch dran halten :roll: ). Bsp:
SQL-Code:
Wenn das nicht geht, dann schmeiße deine FB CD in den nächsten Mülleimer. :stupid:
SELECT X
FROM Y WHERE Z like :SearchWord || '%' |
Re: unscharfe suche mit like und variablen
herzlichen dank..hab das zwar mal wo gelesen,aber erst wenn ich sowas selber mal gebraucht hab isses gespeichert..
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:32 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