Sql 在简单的SELECT/WHERE子句中使用函数
我可以在SQL MySQL、SQL Server等中使用这个简单的no“set”相关语法:Sql 在简单的SELECT/WHERE子句中使用函数,sql,function,select,syntax,where,Sql,Function,Select,Syntax,Where,我可以在SQL MySQL、SQL Server等中使用这个简单的no“set”相关语法: SELECT 1+1; SELECT RAND(); 但是我不允许我使用这个: SELECT RAND() WHERE ( RAND() < 0.5 ) 它与sql集没有交互,但我认为语法是合法的,这应该是允许的 想法是受欢迎的 您的查询没有问题 选择随机数-获取0到1之间的随机数 然后用 其中rand
SELECT 1+1;
SELECT RAND();
但是我不允许我使用这个:
SELECT RAND() WHERE ( RAND() < 0.5 )
它与sql集没有交互,但我认为语法是合法的,这应该是允许的
想法是受欢迎的 您的查询没有问题
选择随机数-获取0到1之间的随机数
然后用
其中rand<0.5-从0到1获取另一个随机数,如果它<0.5,则返回1行prevoius number,否则返回0行
如果你想得到0到0.5之间的随机数,你应该选择RAND*0.5
更新
你想干什么?如果只获得0到0.5之间的随机值,则执行以下操作:选择RAND*0.5;正是你所看到的。。。只是从随机值中获取一组…是的。。。这应该给了我一组小于0.5的值,当值大于0.5时会断开。。。我想问题就在这里。。。SQL不知道要迭代的SQL下集合项计数。。。我正试图从一位已经经历过类似情况的SQL专家那里获得更多数据;好啊我明白你对工会的想法,但那不是我想要的。。。任何语法不适用于mySQL的方式。。。与MSSQL一起工作。。。我想这句话是。。。你能给我一个提示吗?如果你给出想要的结果,帮助你会更简单谢谢你的耐心。。。我想要的是输出一组随机数。。。随机长度。。。所以,如果选择rand<0.5的rand,就可以了。。。但是sql集合迭代器依赖于底层数据;
;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