2015-07-09 2 views
0

В h2 DBMS У меня есть таблицаH2 выберите LIMIT и OFFSET со случайным()

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

И некоторые данные

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

SELECT somevalue FROM sometable LIMIT 1 OFFSET 2 Когда я работает. Почему если я хочу выбрать случайную строку SELECT somevalue FROM sometable LIMIT 1 OFFSET (RANDOM()*4)не работает?

ответ

1

Вы можете сделать что-то вроде этого:

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

Смежные вопросы