Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在简单的SELECT/WHERE子句中使用函数_Sql_Function_Select_Syntax_Where - Fatal编程技术网

Sql 在简单的SELECT/WHERE子句中使用函数

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

我可以在SQL MySQL、SQL Server等中使用这个简单的no“set”相关语法:

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