SQL de string bölme(split )işlemi

Ben  sql  de  split  işlemi  yapmak istiyorum  mesela  “Merhaba  özge”  cümlesindeki  “özge”  yi sadece  döndermek istiyorum  bunu  nasıl yapabilirim ?

Özge Ayaz Şef on 10 Aralık 2015 yazdı
Yorum Ekle
  • 1 Yanıt(lar)
    En iyi yanıt

    SQL’de doğrudan kullanabileceğimiz bir split( ) fonkiyonu bulunmamaktadır. Bunun yerine, kendimiz veritabanında bir fonksiyon oluşturabiliriz. Aşağıda, bu şekilde bir metni bölmek için kullanabileceğin bir split() fonksiyonuna ait kodları bulabilirsin.

    CREATE FUNCTION [Split] (@ourstring varchar(512),@separator char(1))
    
    RETURNS table
    
    AS
    
    RETURN (
    
    WITH Items(index_no, start, finish) AS (
    
    SELECT 1, 1, CHARINDEX(@separator, @ourstring)
    
    UNION ALL
    
    SELECT index_no + 1, finish+ 1, CHARINDEX(@separator, @ourstring, finish+ 1)
    
    FROM Items
    
    WHERE finish> 0
    
    )
    
    SELECT index_no,
    
    SUBSTRING(@ourstring, start, CASE WHEN finish > 0 THEN finish-start ELSE 512 END) AS result
    
    FROM Items
    
    )
    
    

    Fonksiyonda iki tane giriş parametresi var. Bunlardan ilki, @ourstring, bölmek istediğimiz metin. ikincisi, @separator, metin içinde bölme işlemi için kullanacağımız ayraç karakteridir. Fonksiyonu şu şekilde kullanabilirsin:

    set @ourstring='Merhaba özge'
    
    select * from split(@ourstring,' ')
    
    

    Geriye şu şekilde bir tablo dönecektir, buradan değerleri okuyabilirsin.

    Kağan Murat Geliştirici on 10 Aralık 2015 yanıtladı
    Yorum Ekle
  • Yanıtınız

    Cevabınızı göndererek Gizlilik Politikası ve Hizmet Şartlarını kabul ediyorsunuz.