View Full Version : سوال: شمارش تعداد حروف و کلمات
jaza_sa
دوشنبه 14 مرداد 1387, 14:26 عصر
سلام
میخواستم بدنم چطور باید تعداد حروف و کلمات
یک جمله رو که به یک جدول اضافه میشه رو بدست آورد و در دیتابیس ذخیره کرد ؟
باید از چه تابعی داخل " تریگر " استفاده کرد ؟
باتشکر
ASKaffash
دوشنبه 14 مرداد 1387, 15:07 عصر
سلام
اینطوری :
Select Len('Hello')
jaza_sa
دوشنبه 14 مرداد 1387, 15:22 عصر
متشکرم
ولی این کد برای شمارش تعداد حروف هست!!!
حالا برای شمارش تعداد کلامات باید چیکار کرد؟
jaza_sa
دوشنبه 14 مرداد 1387, 16:29 عصر
یافتم
برای شمارش کلمات باید یک Function از نوع Scaler ساخت و برای شمارش کلمات ، این Function رو صدا زد
نحوه تعریف :
Create FUNCTION Count_Word
(
@str NVARCHAR(100)
)
RETURNS INT
AS
BEGIN
DECLARE @Index INT
DECLARE @Char CHAR(1)
DECLARE @PrevChar CHAR(1)
DECLARE @WordCount INT
SET @Index = 1
SET @WordCount = 0
WHILE @Index <= LEN(@str)
BEGIN
SET @Char = SUBSTRING(@str, @Index, 1)
SET @PrevChar = CASE WHEN @Index = 1 THEN ' '
ELSE SUBSTRING(@str, @Index - 1, 1)
END
IF @PrevChar = ' ' AND @Char != ' '
SET @WordCount = @WordCount + 1
SET @Index = @Index + 1
END
RETURN @WordCount
ENDنحوه صدا زدن :
SELECT dbo.Count_Word('محاسبه تعداد کلمات یک عبارت')
-------------------------------------------------------
مقدار بازگشتی : 5
jaza_sa
دوشنبه 14 مرداد 1387, 16:53 عصر
همچنین
برای شمارش حروف یک عبارت بدون درنظر گرفتن فاصله و ... (هر کاراکتری که ما میخوایم مثل ، ؛ ؟ ! و ...) هم باید یک Function تعریف کنیم
نحوه تعریف :
CREATE FUNCTION [dbo].[Count_Letter]
(
@str NVARCHAR(100)
)
RETURNS INT
AS
BEGIN
DECLARE @Index INT
DECLARE @Char CHAR(1)
DECLARE @LetterCount INT
SET @Index = 1
SET @LetterCount = 0
WHILE @Index <= LEN(@str)
BEGIN
SET @Char = SUBSTRING(@str, @Index, 1)
IF @Char != ' '
SET @LetterCount = @LetterCount + 1
SET @Index = @Index + 1
END
RETURN @LetterCount
ENDنحوه فراخوانی :
SELECT dbo.Count_Letter('محاسبه تعداد حروف یک عبارت')
-------------------------------------------------------
مقدار بازگشتی : 22
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.