SQL函式中不能使用rand 函式又一解決辦法

2021-05-27 18:59:28 字數 658 閱讀 7602

今天需要在函式中產生乙個5~10之間的隨機數,不假思索的寫了如下**:

create function xx

( @price decimal(18,2)

)returns decimal(18,2)

asbegin

-- declare the return variable here

declare @result decimal(18,2)

if(@price is null)

set @result=0.0

else

set @result=@price*(1+convert(int,5+rand()*5)/100)

return @result

end

執行後收到「在函式內對帶***的運算子 'rand' 的使用無效。」的錯誤。

一般來說,可以使用檢視的辦法,參考這裡

用檢視很麻煩,但是由於我的需求是產生5~10的數,就想到用時間來解決。通過毫秒值來獲取,同樣可以達到隨機數效果。修改如下:

set @result=@price*(1+convert(int,datepart(ms,getdate())/200+5))

如此就解決了隨機數的問題。

Mysql裡不能使用聚合函式

採取的第一種方式 記錄一下關於mysql的乙個報錯問題解決方案 in aggregated query without group by,expression 1 of select list contains nonaggregated column yunva changke.u.user id...

this指向問題及什麼時候不能使用箭頭函式?

箭頭函式固然好用,但是也不能隨地濫用!回答這個問題前,先來回想下this指向方面的問題 this只有在方法被呼叫的時候,才知道他的指向,定義的時候是不知道的。而this的指向我把它劃分為以下幾種 1.物件裡方法中的this指向呼叫他的物件。比如延時器方法settimeout 在呼叫時 非嚴格模式 其...

vim中不能使用「 y拷貝

新的機器上安裝vim後可以使用yy復執,但是 y拷貝到系統剪下板不行。按下面操作解決 1.首先要檢查你的vim版本是否支援 clipboard,命令是 version 或者可以輸入 reg 檢視是否包含 和 暫存器 2.如果有支援,那麼前面說的方法就可以了,否則的話 需要安裝vim gnome su...