• 3 Aralık 2024 20:24

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.

[code language=”sql”]

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
)

[/code]

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:

[code language=”sql”]

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

[/code]

 

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.