ورود

View Full Version : چطور تعداد تکرار کلمات را در 7000 سند با استفاده از دستورات sql بدست اورم



mehrab1387
شنبه 13 خرداد 1391, 12:10 عصر
سلام به دوستان
من دو جدول دارم که یکی به نام tbl_word است و شامل 300 کلمه می باشد.
در جدول دیگر که به نام tbl_txt است دو فیلد IDو txt را دارم که شامل 7000 سند متنی از نوع ntext است.
می خواهم برای هر کلمه در جدول اول تعداد سندهایی که شامل ان کلمه است را بدست اورم و در جدول جدیدی کلمه و تعداد تکرار سند ها را ذخیره کنم.
مثلا اگر کلمه 'علی' در 2000 سند امده است را ذخیره کنم والبته برای همه کلمات tbl_word این کار را انجام دهم
من قبلا با دستورات سی شارپ این کار را کرده ام اما می خواهم با دستورات اس کیو ال درون خود ان انجام دهم تا بیشتر اشنا شوم.
سرعت اجرا شدن نیز برام مهم است
لطفا کمک کنید...

baktash.n81@gmail.com
سه شنبه 16 خرداد 1391, 17:46 عصر
سلام

شاید این بهترین روش نباشه ... اما می تونی یه حلقه بنویسی یکی کلمات رو از جدول کلمات بخونی و Count رکورد هایی که توش از این کلمه استفاده شده رو به دست بیاری و تو جدول جدید Inser کنی ...

Reza_Yarahmadi
سه شنبه 16 خرداد 1391, 22:50 عصر
میتونید بصورت زیر هم عمل کنید
Declare @Tbl_Word Table(
ID int Identity(1,1),
Word nvarchar(50))

Declare @Tbl_Txt Table(
ID int Identity(1,1),
TXT nvarchar(50))

Insert Into @tbl_word Values ('Ali')
Insert Into @tbl_word Values ('Reza')
Insert Into @tbl_word Values ('Arash')

Insert Into @tbl_txt Values ('asdasd Arash sadasd Ali ftgh')
Insert Into @tbl_txt Values ('Ali')
Insert Into @tbl_txt Values ('Reza')
Insert Into @tbl_txt Values ('asdasd Reza sadasd ftgh')
Select
TW.Word,
Count(*) as CountWord
From
@Tbl_Word TW INNER JOIN @Tbl_Txt TT
ON
CharIndex(Tw.Word, TT.TXT) <> 0
Group BY
TW.Word