Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Използвайте RAND() в User Defined Function

Проблемът е, че не можете да извикате недетерминирана функция от дефинирана от потребителя функция.

Заобиколих това ограничение, като създадох изглед, извиках тази функция вътре в изгледа и използвах този изглед във вашата функция, нещо като това......

Преглед на дефиниция

CREATE VIEW vw_getRANDValue
AS
SELECT RAND() AS Value

Дефиниция на функция

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Мога ли да имам външен ключ, препращащ колона в изглед в SQL Server?

  2. Промяна на приоритета на акаунт в пощенски профил на база данни (SSMS)

  3. Проблем при отваряне на MDF файл, защото казва SQL грешка 5171? - Публикация за гост от Андре Уилямс

  4. Разликата във времето в SQL между две дати води до hh:mm:ss

  5. Включване на SQL Server в разпределена XA транзакция