-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 に答える