Forum

sql serverdan ilk 1...
 
Bildirimler
Hepsini Temizle

sql serverdan ilk 10 kelimeyi çağırmak

2 Yazılar
2 Üyeler
0 Reactions
1,342 Görüntüleme
(@Anonim)
Gönderiler: 0
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

(@cozumpark)
Gönderiler: 16307
Illustrious Member Yönetici
 

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

Paylaş: