Heim >Datenbank >MySQL-Tutorial >Wie kann ich effizient nach Werten in durch Kommas getrennten Zeichenfolgen in SQL Server suchen?

Wie kann ich effizient nach Werten in durch Kommas getrennten Zeichenfolgen in SQL Server suchen?

Linda Hamilton
Linda HamiltonOriginal
2025-01-09 17:32:42772Durchsuche

How Can I Efficiently Search for Values Within Comma-Delimited Strings in SQL Server?

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“
  • Ergebnis: Zeile 1 wird zurückgegeben, da „Cat“ in der durch Kommas getrennten Zeichenfolge gefunden wird.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn