Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Gunakan RAND() dalam Fungsi Buatan Pengguna

Masalahnya adalah Anda tidak dapat memanggil fungsi non-deterministik dari dalam fungsi yang ditentukan pengguna.

Saya mengatasi batasan ini dengan membuat tampilan, memanggil fungsi itu di dalam tampilan dan menggunakan tampilan itu di dalam fungsi Anda, kira-kira seperti ini......

Lihat Definisi

CREATE VIEW vw_getRANDValue
AS
SELECT RAND() AS Value

Definisi Fungsi

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. Ubah Pemisah menjadi Koma saat Mengirim Hasil Kueri melalui Email di SQL Server (T-SQL)

  2. Bagaimana Fungsi NCHAR() Bekerja di SQL Server (T-SQL)

  3. Bagaimana cara terhubung ke MS SQL Server menggunakan Inno Setup?

  4. CONCAT_WS() untuk SQL Server

  5. Ubah waktu desimal menjadi jam dan menit