SQL查询整数

SQL查询整数,第1张

select from tablename

where b-floor(b)=0

select from tablename

where b-ceiling(b)=0

要取得4位小数,可以这样写

update 表 set 女生占比=cast(女生10/总人数 as decimal(18,4)),男生占比=cast(男生10/总人数 as decimal(18,4))

注意,需要乘以10 ,避免整除

大家应该都知道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)

DECLARE @a int,

@b int,

@c int

SET @a=5,

@b=10,

@c=3

SELECT 10@a/@b, 10@a/@c

以上就是关于SQL查询整数全部的内容,包括:SQL查询整数、SQL表中整数除以整数如何得到4位小数,谢谢各位大虾、SQL如何获取33-128之间的随机整数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9595765.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存