Форум: "Базы";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];
ВнизКак вычислить факториал (5!) на языке SQL(FB1.5)??? Найти похожие ветки
← →
VadimKV (2004-09-08 10:39) [0]Как вычислить факториал (5!) на находу (Select) c помощью SQL(FB1.5)???
← →
Ega23 © (2004-09-08 10:45) [1]Гы, с помощью двух goto :о)
← →
Rem (2004-09-08 10:46) [2]2*3*4*5
← →
Ega23 © (2004-09-08 10:47) [3]А вообще - while
← →
VadimKV (2004-09-08 10:51) [4]Ega23 предлагаешь спомощью Хранимой процедуры, если нет то поподробней пожалуйста.
← →
Digitman © (2004-09-08 10:54) [5]
> VadimKV (08.09.04 10:51) [4]
а чем тебя смущает хранимая процедура ?
для небольших N это вполне эффективно
для больших N лучше реализовать UDF, в которой факториал будет вычисляться, и получать вычисленное значение простейшим запросом
select Factorial(5) from RDB$DATABASE
← →
Ega23 © (2004-09-08 10:54) [6]Я не знаком с диалектом Interbase. Для MS SQL - пожалуйста:
Declare @X int, @Cnt int
Set NoCount On
Set @X=1
Set @Cnt=1
While (@Cnt<=5)
begin
Select @X=@X*@Cnt
Select @Cnt=@Cnt+1
end
Set NoCount OFF
Select Result=@X
Можно и классическим способом, через рекурсию. Но это уже действительно ХП должна быть.
← →
VadimKV (2004-09-08 11:03) [7]Digitman, а готывая UDF функция есть или ты предлагаешь мне её саму написать. Если есть поделитесь. UDF Я сам не разу не писал.
← →
Digitman © (2004-09-08 12:43) [8]
> готывая UDF функция есть
скорей всего есть , я не в курсе
посмотри на ibase.ru
← →
DSKalugin © (2004-09-08 13:52) [9]Есть готовая UDF в udflib на www.mers.com но только для Linux
DECLARE EXTERNAL FUNCTION FACT
DOUBLE PRECISION
RETURNS DOUBLE PRECISION
ENTRY_POINT "fn_fact" MODULE_NAME "udflib"
http://www.mers.com/Udf00035.htm
← →
Fay © (2004-09-08 14:28) [10]Вычисление факториала через рекурсию - это не классика. Это извращение.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.036 c