Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Hilfe bei einem SQL ;-)

Empfohlene Antworten

Veröffentlicht

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 ;-)

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.

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%');

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 ....

mal an eine tabelle gedacht in der du die 25 Strings liest?

Stichwort subselect

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;

Jo hast Recht ... ich muss wohl nen Fehler drin gehabt haben als ich das ausprobiert habe ... Danke

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.