PDA

View Full Version : سوال: پرکردن یک فیلد جدول با سری فیبوناچی



mbasirati
سه شنبه 23 آذر 1389, 23:35 عصر
سلام
جدولی دارم با مثلا 50 رکورد ، میخوام یه فیلد این جدول رو با سری فیبوناچی پرکنم ، البته بدون کرسر و با استفاده از update

Topcoding
چهارشنبه 24 آذر 1389, 01:16 صبح
سلام دوست عزیز
آیا جدول شما دارای یک فیلد می باشد یا چند فیلد دارد که می خواهید یکی از آن را با فیبو پر کنید؟
شما فقط می خواهید از Update تنها استفاده نمایید یا می توان از select و متغیر ها هم استفاده کرد
آیا از قبل فیلد فیبو با دو تا 1 پرشده یا خالی است و می خواهید پر کنید؟

mbasirati
چهارشنبه 24 آذر 1389, 10:23 صبح
سلام دوست عزیز
آیا جدول شما دارای یک فیلد می باشد یا چند فیلد دارد که می خواهید یکی از آن را با فیبو پر کنید؟
شما فقط می خواهید از Update تنها استفاده نمایید یا می توان از select و متغیر ها هم استفاده کرد
آیا از قبل فیلد فیبو با دو تا 1 پرشده یا خالی است و می خواهید پر کنید؟

سلام
جدول من دو فیلد دارد که یه فیلدش identity هستش و قبلا پرشده و فیلد دوم خالیه که باید با سری فیبوناچی پر بشه
بله اینو یادم رفت بگم ، دو رکورد اول با 1 پر شدن
ممنون از توجهتون

علیرضا مداح
چهارشنبه 24 آذر 1389, 11:10 صبح
سلام،
برای اینکار می توانید از CTE بهره بگیرید، اطلاعات بیشتر (http://sqlblog.com/blogs/peter_larsson/archive/2009/10/18/simple-fibonacci-calculation.aspx).
،/

mbasirati
پنج شنبه 25 آذر 1389, 21:09 عصر
سلام،
برای اینکار می توانید از CTE بهره بگیرید، اطلاعات بیشتر (http://sqlblog.com/blogs/peter_larsson/archive/2009/10/18/simple-fibonacci-calculation.aspx).
،/

از جواب شما ممنون ولی عرض کردم میخوام از update فقط استفاده کنم

Reza_Yarahmadi
جمعه 26 آذر 1389, 10:19 صبح
خب دوست عزیز اگه فیلد Identity بصورت مرتب باشه و رکوردی حذف نشده باشه با یک Join میتونید این کار رو انجام بدید. در صورتی هم که مرتب نباشه میتونید اول مرتبش کنید بعد این کار رو انجام بدید.
توی مثال زیر فیلد Id همون Identity شما در نظر گرفته شده.

WITH Fibonacci(n, f, f1) AS (
SELECT CAST(0 AS BIGINT),
CAST(0 AS BIGINT),
CAST(1 AS BIGINT)
UNION ALL
SELECT
n + 1,
f + f1,
f
FROM
Fibonacci
WHERE
n < 92
)
Update TableName Set
YourField = f.f
From
Fibonacci f inner join TableName t
On
f.n = t.id