sql >> Databáze >  >> RDS >> Sqlserver

Použijte RAND() ve funkci definované uživatelem

Problém je v tom, že nemůžete volat nedeterministickou funkci z uživatelsky definované funkce.

Toto omezení jsem obešel vytvořením pohledu, voláním této funkce uvnitř pohledu a použitím tohoto pohledu ve vaší funkci, něco takového......

Definice zobrazení

CREATE VIEW vw_getRANDValue
AS
SELECT RAND() AS Value

Definice funkce

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. První pohled na nový odhad kardinality serveru SQL Server

  2. Jak používat kaskádu mazání na úložišti MySQL MyISAM?

  3. Skript pro ukončení všech připojení k databázi (více než RESTRICTED_USER ROLLBACK)

  4. Jak zjistíme název domény pomocí MySQL a regulárního výrazu