Anmelden

View Full Version : SQL-Syntax, set und Like



ILEMax
23-07-12, 10:30
Hi *all
ich habe hier ein SQLRPGLE Pgm das die existenz eines bestimten Datensatzes so prüft


C/EXEC SQL
C+ SET: P021RETURN = CASE WHEN (SELECT COUNT(*)
C+ FROM datei WHERE Trim(Feld) = :wert AND
C+ anderesfeld = UPPER(:andererwert)
C+ ) > 0 THEN 'J' ELSE 'N' END
Nun muß ich aus dem 1. gleich ein like machen und das % davor bauen.

also
where trim(feld) like '%:wert'
(was natürlich nicht geht.

Irgendwie sitz ich im Sommerloch!

Danke
der ILEMax

ExAzubi
23-07-12, 11:19
Am einfachsten die %-Zeichen mit in der Variabelen WERT unterbringen und dann


EVAL WERT = '%'+%TRIM(WERT)+'%'

C/EXEC SQL
C+ xxx WHERE TRIM(FELD) LIKE TRIM(:WERT) ....




Meine einzige Lieblingsmethode ;)

ILEMax
23-07-12, 11:32
danke. Das hatte ich sogar auch im Kopf.

Ich hab's nicht probiert aber das klingt für mich wie das
http://newsolutions.de/forum-systemi-as400-i5-iseries/system-i-hauptforum/17658-sql-where-feld-invar.html

daher hätte ich es nicht versucht

dann werd ich mal ..
der ILEMax

B.Hauser
23-07-12, 13:29
Man kann das Ganze auch ohne RPG Hilfsvariable machen:


Exec SQL
Set :X = ...
Where Feld Like '%' concat Trim(:Wert) concat '%'
and usw.;

Birgitta