SQL如何获取33-128之间的随机整数

四大才子是谁2023-04-24  12

大家应该都知道sql server中Rand()函数用法了,好吧,如果你不知道,我们可以解释一下:

Rand()函数:返回一个介于0和1之间的随机float值。

但这个函数并没有提供参数让我们设置返回的随机数的范围,比如我只想返回一个大于或等于1但同时又要小于或等于100的整数。现在我们做一个自定义函数,用于返回一个指定最大值与最小值内的随机整数。该自定义函数还是需要用到Rand系统函数,但因为在函数中是不能够使用Rand函数的,如果有使用,会报以下的错误:

在函数内的 'rand' 中对带副作用的或依赖于时间的运算符的使用无效

为了解决该问题,我们先创建一个视图V_Rand,用于读取一个随机数,视图代码如下:

CREATE VIEW View_Rand

AS

SELECT RAND() AS RandValue

有了该视图,我们就开始创建我们需要的函数了,sql如下:

CREATE FUNCTION [dbo][udf_GetRandomInteger]

(

@MinValue int = null,

@MaxValue int = null

)

RETURNS int

AS

/

函数名称:udf_GetRandomInteger

功能简述:取随机整数

相关对象:无

参数:@MinValue 最小值

@MaxValue 最大值

/

BEGIN

declare @RandomValue float

declare @ReturnValue int

while(1=1)

begin

--从随机数视图中获取一个随机值(因为函数中不能直接使用rand(),所以用V_Rand视图代替)

select @RandomValue = RandValue from V_Rand

--根据最大最小值获取随机整数

if @MinValue is not null and @MaxValue is not null

begin

select @ReturnValue = ceiling(@RandomValue @MaxValue)

if @ReturnValue >= @MinValue and @ReturnValue <= @MaxValue

begin

break

end

end

else if @MinValue is not null and @MaxValue is null

begin

select @ReturnValue = ceiling(@RandomValue @MinValue)

if @ReturnValue >= @MinValue

begin

break

end

end

else if @MinValue is null and @MaxValue is not null

begin

select @ReturnValue = ceiling(@RandomValue @MaxValue)

if @ReturnValue <= @MaxValue

begin

break

end

end

else if @MinValue is null and @MaxValue is null

begin

select @ReturnValue = convert(int,substring(convert(varchar(20),@RandomValue),3,20))

break

end

end

return @ReturnValue

END

上面的函数也有用到了ceiling()系统函数,该函数的作用就返回一个总是大于或等于指定的numeric值的整数。比如:ceiling(11),会返回2,celing(2),也会返回2,它不会对参数进行四舍五入的运算。

好了,函数创建完毕,我们可以开始测试该函数了,执行以下sql

select dboudf_GetRandomInteger(33,128)

CEILING

请参阅

将参数 Number 向上舍入(沿绝对值增大的方向)为最接近的 significance 的倍数。例如,如果您不愿意使用像“分”这样的零钱,而所要购买的商品价格为 $442,可以用公式 =CEILING(442,01) 将价格向上舍入为以“角”表示。

语法

CEILING(number,significance)

Number 要四舍五入的数值。

Significance 是需要四舍五入的乘数。

说明

如果参数为非数值型,CEILING 返回错误值 #VALUE!。

无论数字符号如何,都按远离 0 的方向向上舍入。如果数字已经为 Significance 的倍数,则不进行舍入。

如果 Number 和 Significance 符号不同,CEILING 返回错误值 #NUM!。

比如:

=CEILING(11,1)的结果将为2

1步骤1、打开任意Excel文档,Microsoft Office Excel 2013和Excel2007打开文件的方式有所不同,如下图打开的示例文件;

2步骤2、点击最上方菜单栏上的“开始”菜单,然后鼠标选中需要应用条件格式的单元格区域,如示例文件,选中C2:C5成绩列这块区域;

3步骤3、鼠标左键点击右上方工具栏上的“条件格式”图标,会出现下拉菜单项,鼠标移动到“突出显示单元格规则”菜单上,会出现级联下级菜单,在下级菜单上选择“小于(L)…”;

4步骤4、在弹出的规则设置窗口的左边单元格中输入数字60,右边的”设置为“的下拉列表框选择你想设置的规则,比如老师对于成绩小于60分的单元格希望以浅红填充,则选择对应项即可实现下图所示效果;

5步骤5、重复步骤3~4,可以分别设置成绩大于90分的和成绩介于60~90分的分别以什么颜色显示,参见下图;

6步骤6、另外可以通过点击“条件格式”图标,选择数据条或者色阶等实现其它类似效果;

The Beach Hotel is located at the central beach areaIt is just 15 kilometers from the city center and 25 kilometers from the international airportThere are 598 rooms in the hotelWith Floor-to-celing windowseach room enjoys a beautiful seaside vicwInside the rooms,both high speed internet access and televisions are availableThe hotel has five swimming pools and a one-kilometer private beach as well

海滩酒店位于中央海滩地区。它是从国际机场的城市中心25公里仅15公里。有598间客房的酒店。地板到天花板windows每个房间享受一个美丽的海滨vicw。里面的房间,高速互联网接入和电视提供的酒店。有五个游泳池和一一公里的私人海滩以及。

Kelly Clarkson - Because Of You Lyrics

I will not make the same mistakes that you did

我不会犯你犯过的错误

I will not let myself

我不会让我自己

Cause my heart so much misery

导致我的心情如此苦恼

I will not break the way you did,

我不会破坏你的方式

You fell so hard

你坚强的倒下

I ve learned the hard way

我已经学会那条艰辛的道路

To never let it get that far

去不让它永远都到那里为止

Because of you

因为你

I never stray too far from the sidewalk

我从来不远离人行道

Because of you

因为你

I learned to play on the safe side so I don t get hurt

我学会在安全的地方玩耍所以就不会受伤

Because of you

因为你

I find it hard to trust not only me, but everyone around me

我发现很难去相信自己以及所有在我身边的人

Because of you

因为你

I am afraid

我害怕

I lose my way

我迷失方向

And it s not too long before you point it out

在你指出问题的不久前

I cannot cry

我不能哭

Because you know that s weakness in your eyes

因为你知道我的弱点

I m forced to fake

我被迫去伪装

A smile, a laugh everyday of my life

微笑大笑,在我的生命当中的每一天

My heart can't possibly break

我的心不可能碎

When it wasn't even whole to start with

甚至当它一开始就不是完整的

Because of you

I never stray too far from the sidewalk

Because of you

I learned to play on the safe side so I don t get hurt

Because of you

I find it hard to trust not only me, but everyone around me

Because of you

I am afraid

I watched you die

我看着你死去

I heard you cry every night in your sleep

我听见过你每天晚上在床上哭泣

I was so young

我当时太小

You should have known better than to lean on me

你应该知道一些比依靠我更好的办法

You never thought of anyone else

你从来没有考虑过别人的感受

You just saw your pain

你只看见自己的伤痛

And now I cry in the middle of the night

现在我在深夜里哭泣

For the same damn thing

也是为了同样谴责的事

Because of you

I never stray too far from the sidewalk

Because of you

I learned to play on the safe side so I don t get hurt

Because of you

因为你

I try my hardest just to forget everything

我尽我最大努力去忘记所有事

Because of you

因为你

I don t know how to let anyone else in

我不知道如何容纳任何人

Because of you

因为你

I m ashamed of my life because it s empty

我为我的生活感到羞耻 因为它是空的

Because of you

因为你

I am afraid

我害怕

Because of you

Because of you

CEILING函数是将参数Number向上舍入,沿绝对值增大的方向,为最接近的 significance 的倍数。其语言表达为:CEILING(number, significance)。

1、如果参数为非数值型,CEILING 返回错误值 #VALUE!。

2、如果number和significance的符号相反,则会显示#NUM!错误。

扩展资料

(1)语法:

CEILING(number, significance)

(2)参数:

Number必需参数,表示要舍入的值。

Significance必需参数,表示要舍入到的倍数。

(3)功能:

将参数 Number 向上舍入(沿绝对值增大的方向)为最接近的 significance 的倍数。

例如,如果使用像“分”这样的零钱,而所要购买的商品价格为 ¥442,可以用公式 =CEILING(442,005) 将价格向上舍入为以“角”表示。

你这个运费计算标准是什么规律?1公斤以下(含1公斤)10元,超过1公斤按每公斤5元?

如果是这样的话可以用如下公式

=10+(CEILING(A2,1)-1)5

以上就是关于SQL如何获取33-128之间的随机整数全部的内容,包括:SQL如何获取33-128之间的随机整数、excel的数字如何取上整、excel条件格式能不能根据公式结果不同的范围显示不同的设定值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

转载请注明原文地址:https://juke.outofmemory.cn/read/3652478.html

最新回复(0)