大家好,今天第 24 天 ~
要如何在 SQL Server 中實作字串分割 (類似 C# 字串的 Split
方法) 呢?在 SQL Server 中,並沒有直接提供字串分割的函式。因此要藉由複雜一點的方法來達成:
範例程式碼如下:
DECLARE @Name VARCHAR(1000);
SET @Name = 'alice,bob,candy';
DECLARE @xml AS XML;
SET @xml = CONVERT(XML, '<n>' + replace(@Name, ',', '</n><n>') + '</n>') -- 將字串轉成 XML,並加上 n 標籤
SELECT ID
FROM Person P
WHERE P.Name IN (
SELECT T.n.value('.','varchar(10)') -- 使用 value 函式查詢 XML 的 n 節點
FROM @xml.nodes('n') T(n)
)
CONVERT
可以轉換資料至不同資料類型,包含 XML。
value
則對 XML 執行 XQuery,並傳回 SQL 類型的值。
XQuery 是一種用來查詢 XML 的語言,用在被放在 SQL 資料庫的 XML 資料。