简体   繁体   English

H2使用random()选择LIMIT和OFFSET

[英]H2 select LIMIT and OFFSET with random()

In h2 dbms I have a table 在H2 dbms中,我有一个表

CREATE TABLE sometable
( ID INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
  somevalue INTEGER)

And some data 还有一些数据

INSERT INTO sometable(somevalue) 
VALUES (1), (2), (3), (4), (5);

When I SELECT somevalue FROM sometable LIMIT 1 OFFSET 2 it works . 当我SELECT somevalue FROM sometable LIMIT 1 OFFSET 2 它将起作用 Why if I want to select random row the SELECT somevalue FROM sometable LIMIT 1 OFFSET (RANDOM()*4) doesn't work ? 为什么如果我要选择随机行, SELECT somevalue FROM sometable LIMIT 1 OFFSET (RANDOM()*4)某表的SELECT somevalue FROM sometable LIMIT 1 OFFSET (RANDOM()*4) SELECT somevalue FROM sometable LIMIT 1 OFFSET (RANDOM()*4) 不起作用

You can do something like this: 您可以执行以下操作:

create table test(
  id bigint auto_increment primary key, 
  name varchar(255));

insert into test 
select x, 'Hello ' || x from system_range(50, 1200);

select * from test t, system_range(1, 100) range
where t.id = x * (select max(id)-min(id) from test) / 100 + 
(select min(id) from test);

Source 资源

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM