• 4 August 2020 14:50

Sait ORHAN

Öğretmek için Öğrenin- Öğrenmek için Öğretin

SQL İle String Değeri Parçalama

Veri tabanı kolonlarında birden fazla bilgiyi karakter ile ayırarak tutmak tavsiye edilmese de bazı durumlarda bir hücrede birden fazla değer tutulma efektif olabilmektedir.

Örneğin; 2|4|32|34|535|435 değerlerini SQL ile işlemek için “|” karakterinden parçalayıp işlemek gerekebilir. Bunun için gerekli olan SQL kodlarını içeren fonksiyon aşağıdaki gibidir.


CREATE FUNCTION dbo.Split (@sep char(1), @s varchar(512))
RETURNS table
AS
RETURN (
WITH Pieces(pn, start, stop) AS (
SELECT 1, 1, CHARINDEX(@sep, @s)
UNION ALL
SELECT pn + 1, stop + 1, CHARINDEX(@sep, @s, stop + 1)
FROM Pieces
WHERE stop > 0
)
SELECT pn,
SUBSTRING(@s, start, CASE WHEN stop > 0 THEN stop-start ELSE 512 END) AS s
FROM Pieces
)

SQL Server üzerinde fonksiyon bu kod ile oluşturulduktan sonra kullanımı ve örnek ekran çıktısı ise şöyledir.

Örnek veri olarak yukarıdaki veriyi kullanacağız:


SELECT * FROM dbo.Split('|','2|4|32|34|535|435')

 

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.