Het probleem is dat je een niet-deterministische functie niet kunt aanroepen vanuit een door de gebruiker gedefinieerde functie.
Ik heb deze beperking omzeild door een weergave te maken, die functie in de weergave aan te roepen en die weergave in je functie te gebruiken, zoiets als dit......
Definitie bekijken
CREATE VIEW vw_getRANDValue
AS
SELECT RAND() AS Value
Functiedefinitie
ALTER FUNCTION getNumber(@_id int )
RETURNS DECIMAL(18,4)
AS
BEGIN
DECLARE @RtnValue DECIMAL(18,4);
SELECT TOP 1 @RtnValue = EmployeeID
FROM dbo.Employees
ORDER BY EmployeeID DESC
SET @RtnValue = (SELECT Value FROM vw_getRANDValue) * @RtnValue * (1.0000/100.0000) --<-- to make sure its not converted to int
RETURN @RtnValue;
END