You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用SQL生成仅为-1或+1的随机正负值?

解决经纬度随机正负偏移(仅生成-1或1)

以下几种SQL写法均可实现仅生成-1或1的随机值:

方法1:用CASE语句判断随机值

SELECT CASE WHEN RAND() > 0.5 THEN 1 ELSE -1 END;

原理:RAND()生成0到1之间的随机数,当随机数大于0.5时返回1,否则返回-1,两种结果的概率各约50%。

方法2:用SIGN函数结合随机数偏移

SELECT SIGN(RAND() * 2 - 1);

原理:RAND() * 2 - 1生成-1到1之间的随机数,SIGN()函数对该数取符号:大于0返回1,小于0返回-1。理论上存在随机数等于0的可能,但实际概率极低,可忽略。

方法3:用FLOOR函数生成整数后转换

SELECT FLOOR(RAND() * 2) * 2 - 1;

原理:FLOOR(RAND() * 2)随机生成0或1,乘2后得到0或2,再减1即得到-1或1,结果分布均匀。

内容的提问来源于stack exchange,提问作者ABBOV

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 22:15:35