Re: [SQL] нуб вопрос
1 запрос это я загнул конечно, в результате их будет 3, но тут важно чтобы на результат не повлиял активный инсертинг/апдейтинг в эту таблицу кем-то другим
хочется, чтобы сначала сервер сделал сначалазачем хочется? чтобы быстрее работало или что?
наверное нужное ключевое слово транзакции, да?не понимаю, зачем оно могло бы быть нужно
если ты точно умнее сервера и знаешь как быстрее работает, а он не знает — напиши
select max(case when field_2 = 0 then field_3 else null end max(case when field_2 = 1 then field_3 else null end) from big_table where field_1 = 123
1 запрос это я загнул конечно, в результате их будет 3, но тут важно чтобы на результат не повлиял активный инсертинг/апдейтинг в эту таблицу кем-то другимhttp://ru.wikipedia.org/wiki/%D3%F0%EE%E2%ED%E8_%E8%E7%EE%EB...
— 1 запрос
create temporary table table_tmp
select max(field_3) from big_table where field_1 = 123 ;
— 2 запрос
select
(select max(field_3) from table_tmp where field_2 = 0
(select max(field_3) from table_tmp where field_2 = 1) ;
в оракле select for update можно еще юзать, запрещая изменения выселекченных строк, если не хочется с уровнями изоляции играться; в ms sql вроде либо вручную запариваться с наложением блокировок, либо уровни изоляции
select max(field_3field_2 from big_table where field_1 = 123 and field_2 in (0,1) group by field_2
?
Over (partition by ..
но так как баштанов написал будет быстрее.
но так как баштанов написал будет быстрее.
ну, чтобы это точно было правдой надо бы туда условие добавить на field_2 in (0,1)
Оставить комментарий
x88888
туплю, подскажите плз кейворды для гугленияесть селект типа
хочется, чтобы сначала сервер сделал сначала
а два других уже из этой. за 1 запрос.
наверное нужное ключевое слово транзакции, да?