Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

उपयोगकर्ता परिभाषित समारोह में रैंड () का प्रयोग करें

समस्या यह है कि आप उपयोगकर्ता द्वारा परिभाषित फ़ंक्शन के अंदर से एक गैर-निर्धारक फ़ंक्शन को कॉल नहीं कर सकते हैं।

मैंने एक दृश्य बनाकर इस सीमा को पार कर लिया है, उस फ़ंक्शन को दृश्य के अंदर कॉल करें और उस दृश्य को अपने फ़ंक्शन के अंदर उपयोग करें, कुछ इस तरह ......

परिभाषा देखें

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 सर्वर में वर्चर (अधिकतम) के लिए NULL मान वापस क्यों नहीं कर रहा है?

  2. कैसे ISNUMERIC () SQL सर्वर में काम करता है

  3. SQL सर्वर 2005 एक अद्वितीय बाधा कैसे बनाएँ?

  4. FLOOR () SQL सर्वर में उदाहरण

  5. एक ही सर्वर पर एकाधिक डेटाबेस में क्वेरी