Ich möchte Ihren Rat suchen, ob irgendeine Funktion in SQL Server, die mir erlauben, Teilübereinstimmung für eine Liste von Werten durchzuführen?TSQL - Partial Matching mit LIKE für mehrere Werte
Die gesamte Zeichenfolge, die abgeglichen werden muss, wird über die Speicherprozedur übergeben.
Ich versuche, eine andere Alternative zu finden, bevor ich meine eigene Funktion schreibe, um die Zeichenkette durch Komma zu teilen und dann alle Ergebnisse zu vereinigen, bevor die Daten an das Programm zurückgegeben werden.
Zum Beispiel würde ich in der folgenden Zeichenfolge in meine TSQL
Apfel, Orange, Birne
in meiner WHERE
Klausel übergibt es
select * from store where fruits like 'apple%'
select * from store where fruits like 'orange%'
select * from store where fruits like 'pear%'
entsprechen sollten Kann ich die obigen Ergebnisse in einer einzigen SQL-Anweisung erreichen, anstatt eine Funktion zu schreiben, um jede Zeichenkette zu unterbrechen?
Daten in meiner Tabelle
apple red
apple green
orange sweet
orange sour
pear big
pear small
Also, wenn ich in der Zeichenfolge "Apfel, Birne" bestanden, muss ich zurück
apple red
apple green
pear big
pear small
Wie sieht 'fruits' aus? Sagen Sie keine durch Kommas getrennten Werte. Das ist ein sehr, sehr schlechter Entwurf für eine relationale Datenbank. –
Ich benutze nur eine einfache Tabelle zur Veranschaulichung. – user3015739
Sie haben ein grundlegendes Problem mit Ihrer Datenstruktur. Sie sollten keine Listen von Dingen als Strings speichern. Stattdessen sollten Sie eine Junction-Tabelle verwenden. –