[db2] Variable in SQL

oraclin25

Erfahrenes Mitglied
Hallo zusammen,

ich habe ein String mit vielen Nummern, beispielsweise:
meinString = '%24%33%46%'

Jede Nummer repräsentiert eine Sache:

28 --> dies ist ein Buch
33 --> dies ist ein Buch
36 --> dies ist ein Schmuck

In einer User Definied Function möchte gerne eine if-Anweisung einbauen, die folgendes besagt:
wenn ein Buch existiert, dann schreibe 'direkt'

Bei obigem String-Beispiel sollte also 'direkt' ausgegeben werden

Dazu habe ich mir überlegt:
Ich packe alle Nummern, die jeweils ein Buch repräsentiert, in eine EINZIGE Variable, quasi so etwas:
SET Buch = 28,33,...

Syntax ist falsch sicherlich.

Danach möchte ich mit IF-Anweisung arbeiten:
if (meinString like Buch) then 'direkt'

Es hat leider nicht funktioniert. Wie schaffe ich es, dass sobald mindestens eine Nummer gefunden wird, wird die then-Anweisung direkt angestoßen. Vielen lieben Dank.

Schöne Grüße aus Rheinland,

Eure Ratna
 
Vornweg. Ich kenn db2 nur vom Namen her.

Aber Achtung mit dem LIKE-Vergleich bei Listen.:
Code:
-- Liste
%13%33%114%

-- Suchbegriff:
14

-- Er  findet die 14 owohl sie nicht in der Liste ist.

Zudem ist % ein gaaaanz schlechtes Trennzeichen, da es im Zusammenhang mit LIKE als Platzhalter verwendet wird (analog dem * im Windows)

if() ist in den meisten DBMS als CASE WHEN vorhanden. Kurze Googel-Suche -> jepp, bei db2 ists auch so: http://www.sk-consulting.de/www/html-data/infodb2/sqlv6ti.htm
 
Hallo Yaslaw,

danke für die Antwort.

Ich habe mittleweiler ein anderes Trennzeichen genommen:
#13#33#114#

if() ist in den meisten DBMS als CASE WHEN vorhanden

Ich werde mit if else if arbeiten. Allerdings bin ich grad an einer Stelle nicht weitergekommen, nämlich:
wie drücke ich "if(es gibt mindestens ein Buch, dann schreibe 'direkt')" aus?
Wie definiere ich am besten die Variable Buch?

Hat dies mit let zu tun? Vielen Dank.

Viele Grüße aus Rheinland,

Eure Ratna

edit:
Hallo Yaslaw,

ich habe folgendes probiert, leider fehlgeschlagen:

Code:
SET buecher = >1>,>78>
       if(meinString like buecher) then 'schreibe_etwas'
       else then 'schreibe_nichts'

Ich bin dankbar für Hilfestellungen.

Viele Grüße aus Rheinland,

Eure Ratna
 
okay, kein problem Yaslaw.. Ich guck mal, ob ich anders das problem löse. Ich halte Dich auf dem Laufenden.

Schöne Grüße aus Rheinland,

Eure Ratna
 
Zurück