按陣列值過濾行

如果將行中的標記列表儲存為逗號分隔值,則 STRING_SPLIT 函式可以將標記列表轉換為值表。 CROSS APPLY 使你可以將 STRING_SPLIT 函式解析的值與父行 連線

想象一下,你有一個 Product 表,其中包含一系列逗號分隔標記(例如 promo,sales,new)。通過 STRING_SPLIT 和 CROSS APPLY,你可以使用其程式碼加入產品行,以便按標記過濾產品:

SELECT *
FROM Products p 
     CROSS APPLY STRING_SPLIT( p.Tags, ',' ) tags
WHERE tags.value = 'promo'

對於每一行,標籤單元格的值將提供給將返回標籤值的 STRING_SPLIT 函式。然後,你可以按這些值過濾行。

注意:SQL Server 2016 之前, STRING_SPLIT 函式不可用 ****