SQL(MySQL、SQL Serverなど)でこの単純な(「セット」を含まない)構文を使用できます。
SELECT 1+1;
SELECT RAND();
しかし、私はこれを使用することを許可しません:
SELECT RAND() WHERE ( RAND() < 0.5 )
SQLセットとの相互作用はありませんが、構文は合法であり、これは許可されるべきだと思います
アイデアは大歓迎です... ;)
あなたのクエリは
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