- Katılım
- 4 Haz 2018
- Mesajlar
- 290
- En iyi yanıt
- 4
- Puanları
- 63
- Yaş
- 34
- Konum
- Antalya / Merkez
- Ad Soyad
- Vedat ÖZER
- Office Vers.
- 2019
Merhaba,
STRING_SPLIT fonksiyonu Sql Server 2016 birlikte gelen bir fonksiyon. Sizin belirtmiş olduğunuz cümleyi belirtmiş olduğunuz parametreye göre satırlara dağıtır.
STRING_SPLIT ( string , separator )
Kullanım ;
SELECT * FROM string_split ('EXCEL TURKEY', ' ')
Sonuç ;
1 EXCEL
2 TURKEY
Sql Server 2016 versiyonu olmayan kişiler aşağıdaki sorguyu kullanabilir.
Ek olarak Ömer Faruk Çolakoğlu hocanın çözümü ;
STRING_SPLIT fonksiyonu Sql Server 2016 birlikte gelen bir fonksiyon. Sizin belirtmiş olduğunuz cümleyi belirtmiş olduğunuz parametreye göre satırlara dağıtır.
STRING_SPLIT ( string , separator )
Kullanım ;
SELECT * FROM string_split ('EXCEL TURKEY', ' ')
Sonuç ;
1 EXCEL
2 TURKEY
Sql Server 2016 versiyonu olmayan kişiler aşağıdaki sorguyu kullanabilir.
SQL:
DECLARE @String VARCHAR(100) = 'EXCEL TURKEY'
DECLARE @AYRAC VARCHAR(5) = ' '
SELECT T.C.value('.', 'VARCHAR(100)') AS VALUE
FROM (SELECT CAST('<C>' + REPLACE(@String,@AYRAC,'</C><C>') + '</C>' AS XML) AS X) AS A
CROSS APPLY X.nodes ('/C') AS T(C);
Ek olarak Ömer Faruk Çolakoğlu hocanın çözümü ;
SQL:
create FUNCTION [dbo].[SplitWithSeq](@String varchar(8000), @Delimiter char(1))
returns @temptable TABLE (items varchar(8000), seq int)
as
begin
declare @i int
set @i = 0
declare @idx int
declare @slice varchar(8000)
select @idx = 1
if len(@String)<1 or @String is null return
while @idx!= 0
begin
set @i = @i + 1
set @idx = charindex(@Delimiter,@String)
if @idx!=0
set @slice = left(@String,@idx - 1)
else
set @slice = @String
if(len(@slice)>0)
insert into @temptable(items,seq) values(@slice,@i)
set @String = right(@String,len(@String) - @idx)
if len(@String) = 0 break
end
return
end