Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Erstmal guten Tag,

ich habe ein Problem bei einem SQL auf einer Oracle DB.

Ich habe als Beispiel eine Tabelle mit einer Spalte1 vom Typ String.

In dieser möchte ich suchen ob sie den String 'TEST1', 'TEST2' oder 'TEST3'

enthält.

Und ich möchte das nicht über mehrere OR Verknüpfungen hinbekommen.

Bei Integer Werten ist das ja kein Problem da es das "IN" gibt.

Nur bei Strings klappt das leider nicht.

Schön wäre soetwas wie:

SELECT * FROM TABLE1 WHERE SPALTE1 IN ('TEST1', 'TEST2','TEST3')

Ich hoffe jemand hat eine Idee ;-)

Geschrieben

die frage ist, ob die spalte nur den gesuchten Text enthält, oder davor und danach noch etwas steht.

dann führt 'string' dazu das wirklich nur 'string' gefunden wird und nicht 'String' oder 'STRING'

du kannst mit "like" arbeiten, und die Spalte mit "upper" ansprechen.

also

where upper(Spalte1) like upper('TEXT%');

das würde alles liefern was 'text' in irgendeiner groß-klein kombination enthält, sogar wenn danach noch Zeichen kommen.

Falls der text an einer bestimmten stelle gesucht werden soll könnte es nützlich sein die funktion substr() zu verwenden um nicht mehr zu vergleich als sein muss.

Geschrieben

ich persönlich bin ja ein Freund von lower ;-)

ich frage mich was dagegen spricht das ganze mit ORs zu verknüpfen?

Wenn ich mich nicht täusche (und das ist durchaus möglich *noch noob bin* ;) ) würde es so funktionieren können:

where lower(spalte1) like lower('%text1%') or

lower(spalte1) like lower('%text2%') or

lower(spalte1) like lower('%text3%');

Geschrieben

Erstmal danke für die Antworten.

Zu Corto ... lower und upper ist erstmal egal und auch ob davor oder danach andere Zeichen sind.

Ich suche eine möglichkeit ohne die "OR" verknüpfung in einer String Spalte nach mehereren verschiedenen Strings wie z.b. "Text1" und "Text2" zu suchen.

Zu Daij... jep so würde es mit "or" aussehen ;) allerdings würde ich es gerne anders machen da ich sonst sehr viele verschachtelte or anweisungen hätte

da ich nach ca 25 begriffen suchen muss....

ich glaube aber das es da nicht wirklich eine schöne Lösung für gibt ....

Geschrieben

Ich weis ja nicht woher du die info hast das "in" nicht für text geht. Du musst nur Hochkommata verwenden.

update tablename

set

column_1='string'

where

lower(search_column)

in

(

'STRING1',

'STRING2',

'STRING3',

....,

....,

'STRING25'

)

and

condition_colum = whatever;

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...