首頁 > 資料庫 > mysql教程 > 如何在 SQL Server 中有效率地搜尋逗號分隔字串中的值?

如何在 SQL Server 中有效率地搜尋逗號分隔字串中的值?

Linda Hamilton
發布: 2025-01-09 17:32:42
原創
728 人瀏覽過

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

在逗號分隔的 SQL Server 欄位中尋找特定值

使用 SQL Server 2008,您可能需要尋找包含逗號分隔值的欄位中特定值所在的資料列。 挑戰在於將該值定位在字串中的任何位置,而不僅僅是精確的字串匹配。

讓我們來看看這個問題:

  • 範例表:

    <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>
    登入後複製
  • 目標: 辨識 ColumnName 包含特定值(如「貓」或「羊」)的行。

IN這樣的標準方法是不夠的,因為它們不處理嵌入在逗號分隔清單中的值。需要更複雜的方法。

一個強大的解決方案使用字串連接和 LIKE 運算子:

<code class="language-sql">SELECT id
FROM DelimitedValues
WHERE (',' + RTRIM(ColumnName) + ',') LIKE '%,' + @search + ',%'</code>
登入後複製

此技術可確保搜尋值 (@search) 以逗號括起來,無論其在清單中的位置為何,都可以進行偵測。 例如:

  • ColumnName 持有「貓、狗、麻雀、鱒魚、牛、海馬」
  • @search 是「貓」
  • 結果: 傳回第 1 行,因為在逗號分隔的字串中找到了「Cat」。

此方法可靠地處理所有情況:清單開頭、中間或末尾的值以及單值條目。

以上是如何在 SQL Server 中有效率地搜尋逗號分隔字串中的值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板