Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Sử dụng RAND () trong Hàm do Người dùng Xác định

Vấn đề là bạn không thể gọi một hàm không xác định từ bên trong một hàm do người dùng xác định.

Tôi đã khắc phục hạn chế này bằng cách tạo một dạng xem, gọi hàm đó bên trong dạng xem và sử dụng dạng xem đó bên trong hàm của bạn, một cái gì đó như thế này ......

Xem định nghĩa

CREATE VIEW vw_getRANDValue
AS
SELECT RAND() AS Value

Định nghĩa hàm

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. Nhận các giá trị ranh giới cho một bảng được phân vùng trong SQL Server (T-SQL)

  2. Cách sử dụng Câu lệnh GO trong SQL Server để Chèn Bản ghi trong Cột Định danh - Hướng dẫn SQL Server / T-SQL Phần 42

  3. Cách thay đổi giản đồ của một đối tượng (Bảng, Dạng xem, Thủ tục đã Lưu trữ) trong Cơ sở dữ liệu SQL Server - Hướng dẫn SQL Server / TSQL Phần 28

  4. Cách sử dụng Top with Ties trong SQL Server - SQL Server / TSQL Hướng dẫn Phần 114

  5. Tạo một dạng xem liên kết lược đồ trong SQL Server