Pisah rentetan dalam T-SQL 2008 R2
Dalam SQL Server 2008 R2, pengguna menghadapi cabaran apabila cuba memisahkan rentetan yang dipisahkan koma. Walaupun mencari StackOverflow, nampaknya penyelesaian yang tersedia mungkin tidak serasi dengan versi ini.
Penyelesaian
Untuk memisahkan rentetan dengan cekap dalam T-SQL 2008 R2, fungsi yang ditentukan pengguna berikut boleh digunakan:
<code class="language-sql">CREATE FUNCTION dbo.splitstring ( @stringToSplit VARCHAR(MAX) ) RETURNS @returnList TABLE ([Name] [nvarchar] (500)) AS BEGIN DECLARE @name NVARCHAR(255) DECLARE @pos INT WHILE CHARINDEX(',', @stringToSplit) > 0 BEGIN SELECT @pos = CHARINDEX(',', @stringToSplit) SELECT @name = SUBSTRING(@stringToSplit, 1, @pos-1) INSERT INTO @returnList SELECT @name SELECT @stringToSplit = SUBSTRING(@stringToSplit, @pos+1, LEN(@stringToSplit)-@pos) END INSERT INTO @returnList SELECT @stringToSplit RETURN END</code>
Contoh penggunaan
Untuk menggunakan fungsi ini, laksanakan pertanyaan berikut:
<code class="language-sql">SELECT * FROM dbo.splitstring('91,12,65,78,56,789')</code>
Pertanyaan ini akan mengembalikan jadual hasil yang mengandungi elemen rentetan individu yang dipisahkan dengan koma.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memisahkan Rentetan Dipisahkan Koma dalam T-SQL 2008 R2?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!