-2

我可以在 SQL(MySQL、SQL Server 等)中使用这种简单的(不涉及“设置”)语法:

SELECT 1+1;
SELECT RAND();

但我不允许我使用它:

SELECT RAND() WHERE ( RAND() < 0.5 )

它与 sql 集没有交互,但我认为语法是合法的,应该允许这样做

欢迎提出想法... ;)

4

1 回答 1

0

你的查询确实

select rand()- 获取从 0 到 1 的随机数,然后将其过滤

where rand() < 0.5- 获取另一个从 0 到 1 的随机数,如果它 < 0.5,则返回 1 行,前一个数,否则返回 0 行

如果你想得到从 0 到 0.5 的随机数,你应该这样做SELECT RAND() * 0.5

更新

;with cte as (
    select * from (select rand() as number) as a where number < 0.5
    union all
    select * from (select rand() as number) as a where number < 0.5
)
select * from cte
于 2013-08-08T17:49:27.967 回答