Pemisahan Rentetan T-SQL dalam SQL Server 2008 R2
SQL Server 2008 R2 tidak mempunyai fungsi pemisahan rentetan terbina dalam, menjadikan pemprosesan rentetan dipisahkan koma mencabar. Artikel ini menunjukkan penyelesaian yang teguh menggunakan fungsi tersuai.
Mencipta Fungsi Pisahan Tersuai
Fungsi dbo.splitstring
berikut dengan cekap memisahkan rentetan dipisahkan koma:
<code class="language-sql">CREATE FUNCTION dbo.splitstring (@stringToSplit VARCHAR(MAX)) RETURNS @returnList TABLE ([Name] [nvarchar](500)) AS BEGIN DECLARE @name NVARCHAR(255), @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>
Penggunaan Fungsi
Untuk menggunakan fungsi, hanya lulus rentetan untuk dipecahkan sebagai parameter:
<code class="language-sql">SELECT * FROM dbo.splitstring('91,12,65,78,56,789');</code>
Ini akan menghasilkan jadual dengan setiap nilai dipisahkan koma dalam baris yang berasingan:
| Nama | |---|---| | 91 | | 12 | | 65 | | 78 | | 56 | | 789 |
Fungsi tersuai ini menyediakan kaedah yang boleh dipercayai untuk mengendalikan rentetan dipisahkan koma dalam had SQL Server 2008 R2.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membahagikan Rentetan Dibatasi Koma dengan Cekap dalam SQL Server 2008 R2?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!