lostyazilim
tr.link

Mssql de split olayı

5 Mesajlar 799 Okunma
lstbozum
tr.link

spyturk spyturk WM Aracı Kullanıcı
  • Üyelik 26.08.2015
  • Yaş/Cinsiyet 38 / E
  • Meslek Bilgisayar Mühendisi
  • Konum Çorum
  • Ad Soyad O** Ö**
  • Mesajlar 69
  • Beğeniler 7 / 9
  • Ticaret 1, (%100)
Merhaba,

kampanyalar adında bir tablom mevcut ve bu tabloda subeler adında bir sütun mevcut. sütun içerisinde 4,2,1 şeklinde şubelerin idleri aralarına virgül koyulmuş şekilde tek satırda yazıyor. Öyle bir select sorgusu yazmalıyım ki aşağıdaki şekilde şube idleri farklı satırlarda gelmeli

4
2
1

Yardımcı olur musunuz?
 

 

wmaraci
reklam

HapyMan HapyMan Full Stack Developer Kullanıcı
  • Üyelik 14.05.2016
  • Yaş/Cinsiyet 32 / E
  • Meslek What do you do exactly ?
  • Konum İstanbul Avrupa
  • Ad Soyad T** T**
  • Mesajlar 561
  • Beğeniler 171 / 208
  • Ticaret 0, (%0)




 

 

spyturk spyturk WM Aracı Kullanıcı
  • Üyelik 26.08.2015
  • Yaş/Cinsiyet 38 / E
  • Meslek Bilgisayar Mühendisi
  • Konum Çorum
  • Ad Soyad O** Ö**
  • Mesajlar 69
  • Beğeniler 7 / 9
  • Ticaret 1, (%100)

HapyMan adlı üyeden alıntı







Hocam sqlde yapmam gerekiyor bunu çünkü bayağı çok veri var bu şekilde döngüyle her görüntülemede sistemi yoracak.
 

 

SizofrenikDev SizofrenikDev WM Aracı Kullanıcı
  • Üyelik 05.10.2016
  • Yaş/Cinsiyet 38 / E
  • Meslek Yazılım Uzmanı
  • Konum İstanbul Avrupa
  • Ad Soyad H** B**
  • Mesajlar 187
  • Beğeniler 8 / 49
  • Ticaret 2, (%100)
Merhaba,

String ifadeyi table ortamına çeviren bir function yazarak çözebilirsin.




CREATE FUNCTION [dbo].[StringToTable] (@stringToSplit VARCHAR(MAX),@seperator nvarchar(5))
RETURNS
@returnList TABLE ([Name] [nvarchar] (500))
AS
BEGIN
DECLARE @name NVARCHAR(255)
DECLARE @pos INT
WHILE CHARINDEX(@seperator, @stringToSplit) > 0
BEGIN
SELECT @pos = CHARINDEX(@seperator, @stringToSplit)
SELECT @name = SUBSTRING(@stringToSplit, 1, @pos-1)
INSERT INTO @returnList
SELECT @name
SELECT @stringToSplit = SUBSTRING(@stringToSplit, @pos+1, LEN(@stringToSplit)-@pos)
END
INSERT INTO @returnList
SELECT @stringToSplit
RETURN
END


1. Parametre String ifade
2. Parametre Seperatör

Kolay Gelsin
spyturk

kişi bu mesajı beğendi.

wmaraci
wmaraci

spyturk spyturk WM Aracı Kullanıcı
  • Üyelik 26.08.2015
  • Yaş/Cinsiyet 38 / E
  • Meslek Bilgisayar Mühendisi
  • Konum Çorum
  • Ad Soyad O** Ö**
  • Mesajlar 69
  • Beğeniler 7 / 9
  • Ticaret 1, (%100)
ŞizofrenikDev hocam teşekkür ederim. ben de aşağıdaki şekilde çözdüm olayı.

SELECT T2.my_Splits AS Subeler
FROM
(
SELECT *,
CAST(''+replace(T.Subeler,',','')+'' as XML) as my_Xml
FROM Kampanyalar T
) T1
CROSS APPLY
(
SELECT my_Data.D.value('.','int') as my_Splits
FROM T1.my_Xml.nodes('X') as my_Data(D)
) T2
 

 

wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al