SQL Server üzerinde programlama yaparken metinleri ayrıştıran split fonksiyonunun T-SQL’de olmayışının eksikliğini hep hissetmişizdir. Bir metni bölmenin birçok yöntemi olsa da hepsinin mantığı döngü kurup metin içerisinde virgül gibi bir ayıraçın konumu bularak her virgül arasındaki değeri listelemektir. SQLTeam’da denk geldiğim aşağıdaki yöntemin daha hızlı olduğu ve pratik olduğunu düşünüyorum.
IF OBJECT_ID('dbo.Split') IS NOT NULL
DROP FUNCTION dbo.Split
GO
CREATE FUNCTION dbo.Split(@data NVARCHAR(MAX), @delimiter NVARCHAR(5))
RETURNS @t TABLE (data NVARCHAR(max))
AS
BEGIN
DECLARE @textXML XML;
SELECT @textXML = CAST('
dbo şemasına altında oluşturulan bu fonksiyonu kullanalım.
[sql]DECLARE @text NVARCHAR(max)
SELECT @text = 'C#, VB.NET, SQL Server, AJAX'
SELECT * FROM dbo.Split(@text, ',')
C#
VB.NET
SQL Server
AJAX

