【求助】ROUND 函数返回值作为 WHERE 的条件出现的问题
sql吧
全部回复
仅看楼主
level 1
qzj87996002 楼主
语句是这样的:
按照我想的,应该返回 question_id 在 60000200~60000500 之间的随机出来的一条记录。
数据库里记录都是有的。一条都没少(60000001~60010240并且是连续的)。
但是运行结果却是这样的:
返回的条数不是固定的一条,甚至还会没有。
只能来求助一下大佬了。。
2018年08月16日 12点08分 1
level 14
拆出来试试 先随机出数字在查询
2018年08月16日 13点08分 2
大佬好!我拆出来之后符合要求的,然后组装回去就有问题,测试记录发在楼下了。[不高兴]
2018年08月16日 14点08分
level 1
qzj87996002 楼主
拆出来了以下,结果是
正确的
,但是组装进去之后就是有问题。
然后我看了以下Round函数返回的类型是DOUBLE,我就把我表的question_id字段也改成了double试试。
结果也是不正确的。。
难道是DisplaySize和Precision不一样的原因吗。。。
2018年08月16日 14点08分 3
level 14
我说拆出来用存储过程查……声明一个变量=你随机出来的数再select where这个条件
2018年08月16日 14点08分 4
哦哦好的吧。。我去试试,先谢啦。
2018年08月16日 14点08分
level 14
declare @a varchar(250)
set @a=(select 你的随机数)这一步没报错的话 就select 你的表 where id=@a
如果赋值报错说明你随机数写法不对
2018年08月16日 14点08分 5
嗯嗯,用存储过程得到的结果是对的了。。但是直接用SQL写为啥错还是很迷。。我找个时间好好再研究下。。不过燃眉之急是解了!谢谢大佬啦![开心]
2018年08月16日 14点08分
1