Мне просто интересно, почему это работает. Но то, что у меня есть, не работает.Рекурсивная функция SQL, <= оператор не работает
ALTER PROC spFactorial
@ValueIn int,
@ValueOut int OUTPUT
AS
DECLARE @InWorking int;
DECLARE @OutWorking int;
IF @ValueIn <> 1 -- this <= doesn't work??
BEGIN
SELECT @InWorking = @ValueIn - 1;
EXEC spFactorial @InWorking, @OutWorking OUTPUT;
SELECT @ValueOut = @ValueIn * @OutWorking;
END
ELSE
BEGIN
SELECT @ValueOut = 1;
END
RETURN;
GO
DECLARE @WorkingOut int;
DECLARE @WorkingIn int;
SELECT @WorkingIn = 3;
EXEC spFactorial @WorkingIn, @WorkingOut OUTPUT;
PRINT CAST(@WorkingIn AS varchar) + ' factorial is '
+ CAST(@WorkingOut AS VARCHAR);
IF @ValueIn <= 1
не работает - почему?
В C# или java он работает.
Спасибо
'<=' отлично работает для меня .... 'DECLARE @ValueIn INT = 1 ; ЕСЛИ @ValueIn <= 1 НАЧАТЬ PRINT '1' END ELSE НАЧАТЬ PRINT '2' END' –