SQL de Split Fonksiyonu

by Eren 9. June 2009 20:29

Soru : Muallim efendi aklıma birşey takıldı. Geçenlerde huysuz patronum benden SQL den gelen bir satırın bir hücresinde yeralan ve bir sembol ile ayrılmış verileri
split etmemi istedi. Yani hani csharp ve benzeri programlama  dillerindeki Split fonksiyonu varya onun TSQL versiyonuna ihtiyacımvar. Ben varchar değerimi vereyim
ayraç karakterimi vereyim bana table olarak satır satır ayırdığı değerleri döndürsün mesela

'ahmet;mehmet;ayşe;fatma' verisini

-------
ahmet
mehmet
ayşe
fatma

şeklinde bir table halinde istiyorum.

 

El-Cevab :
Çok güzel bir konuya parmak bastın çekirge. Sana öyle bir fonksiyon yazayım  ki dertlerine derman, yaralarına merhem olsun;

CREATE FUNCTION dbo.fnSplit

(

@sInputList VARCHAR(8000),

@sDelimiter VARCHAR(8000) = ','

)

RETURNS @List

TABLE (item VARCHAR(8000))

BEGIN

DECLARE @sItem VARCHAR(8000)

WHILE CHARINDEX(@sDelimiter,@sInputList,0) <> 0

BEGIN

SELECT @sItem=RTRIM(LTRIM(SUBSTRING(@sInputList,1,CHARINDEX(@sDelimiter,@sInputList,0)-1))), @sInputList=RTRIM(LTRIM(SUBSTRING(@sInputList,CHARINDEX(@sDelimiter,@sInputList,0)+LEN(@sDelimiter),LEN(@sInputList)))) IF LEN(@sItem) > 0

INSERT INTO @List SELECT @sItem END

IF LEN(@sInputList) > 0

INSERT INTO @List SELECT @sInputList

RETURN

END

Tags: ,

Sql Server | Muallim Efendi İle Çekirge

Comments

Add comment


(Will show your Gravatar icon)

  Country flag

biuquote
  • Comment
  • Preview
Loading



Eren Çetin - 2010
Eren Çetin, Bilgisayar Mühendisi , Yazılım Geliştirme Uzmanı