Forum
Bildirimler
Hepsini Temizle
SQL Server
2
Yazılar
2
Üyeler
0
Reactions
1,292
Görüntüleme
Konu başlatıcı
merhabalar
projede kullanılacak bir bölüm için veritabanından
sorgu ile çekilen bir cümlenin ilk 10 kelimesini göstermek istiyorum. 10
Kelimeden sonra "devamını oku..." gibisinden bir yazı olacak.
İlk 10 kelimeyi veya ilk 80 harfi nasıl yazdırabilirim ?
Yardımcı olursanuz çok sevinirim.
Gönderildi : 28/07/2011 20:20
CREATE FUNCTION SplitWords(@text varchar(8000)) RETURNS @words TABLE ( pos smallint primary key, value varchar(8000) ) AS BEGIN DECLARE @pos smallint, @i smallint, @j smallint, @s varchar(8000) SET @pos = 1 WHILE @pos <= LEN(@text) BEGIN SET @i = CHARINDEX(' ', @text, @pos) SET @j = CHARINDEX(',', @text, @pos) IF @i > 0 OR @j > 0 BEGIN IF @i = 0 OR (@j > 0 AND @j < @i) SET @i = @j IF @i > @pos BEGIN -- @i now holds the earliest delimiter in the string SET @s = SUBSTRING(@text, @pos, @i - @pos) INSERT INTO @words VALUES (@pos, @s) END SET @pos = @i + 1 WHILE @pos < LEN(@text) AND SUBSTRING(@text, @pos, 1) IN (' ', ',') SET @pos = @pos + 1 END ELSE BEGIN INSERT INTO @words VALUES (@pos, SUBSTRING(@text, @pos, LEN(@text) - @pos + 1)) SET @pos = LEN(@text) + 1 END END RETURN END
Bu fonksiyon varchar tipindeki bir datayı kelime kelime ayırarak bu kelimeleri içeren bir tablo döndürüyor. Sen de bu fonksiyon üzerinde basit bir uğraşıyla dilediğin sonuca ulaşabilirsin.
Gönderildi : 29/07/2011 01:17