Heim >Datenbank >MySQL-Tutorial >Wie kann ich effizient nach Werten in durch Kommas getrennten Zeichenfolgen in SQL Server suchen?
Suchen bestimmter Werte in durch Kommas getrennten SQL Server-Spalten
Bei der Arbeit mit SQL Server 2008 müssen Sie möglicherweise Zeilen finden, in denen sich ein bestimmter Wert in einer Spalte befindet, die durch Kommas getrennte Werte enthält. Die Herausforderung besteht darin, diesen Wert an einer beliebigen Stelle innerhalb der Zeichenfolge zu finden und nicht nur als exakte Zeichenfolgenübereinstimmung.
Lassen Sie uns dieses Problem untersuchen:
Beispieltabelle:
<code class="language-sql"> CREATE TABLE DelimitedValues (id INT, ColumnName VARCHAR(100)); INSERT INTO DelimitedValues VALUES (1, 'Cat,Dog,Sparrow,Trout,Cow,Seahorse'), (2, 'Mouse');</code>
Ziel: Identifizieren Sie Zeilen, in denen ColumnName
bestimmte Werte wie „Katze“ oder „Schaf“ enthält.
Standardmethoden wie IN
greifen zu kurz, da sie keine Werte verarbeiten, die in durch Kommas getrennte Listen eingebettet sind. Ein ausgefeilterer Ansatz ist erforderlich.
Eine leistungsstarke Lösung verwendet die Zeichenfolgenverkettung und den LIKE
-Operator:
<code class="language-sql">SELECT id FROM DelimitedValues WHERE (',' + RTRIM(ColumnName) + ',') LIKE '%,' + @search + ',%'</code>
Diese Technik stellt sicher, dass der Suchwert (@search) von Kommas umgeben ist, wodurch die Erkennung unabhängig von seiner Position in der Liste ermöglicht wird. Zum Beispiel:
ColumnName
enthält „Katze, Hund, Spatz, Forelle, Kuh, Seepferdchen“@search
ist „Katze“Diese Methode verarbeitet zuverlässig alle Fälle: Werte am Anfang, in der Mitte oder am Ende der Liste und Einzelwerteinträge.
Das obige ist der detaillierte Inhalt vonWie kann ich effizient nach Werten in durch Kommas getrennten Zeichenfolgen in SQL Server suchen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!