powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / SELECT ... in (1,3,2) ORDER BY
5 сообщений из 5, страница 1 из 1
SELECT ... in (1,3,2) ORDER BY
    #35328717
Фотография SmeL_md
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT id, descr, val FROM sys_tree_group WHERE id in ( 1,3,2 )
Как написать запрос чтоб записи выводились в порядке соответствующим в WHERE
...
Рейтинг: 0 / 0
SELECT ... in (1,3,2) ORDER BY
    #35328819
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
create table t1 ( id integer, name text );
insert into t1 values ( 10 ,'foo'), ( 20 ,'bar'), ( 30 ,'baz');

select *
from t1
natural join ( values ( 20 , 1 ), ( 30 , 2 ), ( 10 , 3 ) ) as v1 (id,ordr)
order by ordr;

drop table t1;
...
Рейтинг: 0 / 0
SELECT ... in (1,3,2) ORDER BY
    #35328931
Фотография SmeL_md
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо
...
Рейтинг: 0 / 0
SELECT ... in (1,3,2) ORDER BY
    #35573827
coolin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и от меня спасибо!

а как сделать тоже самое только с update?
тоесть есть записать в нужном порядке поле-order
что-то вроде этого:

update products set p.pos=v.ordr where p.id in (select * from ( values (30,1), (30,2), (40,3) ) as v (id,ordr))
...
Рейтинг: 0 / 0
SELECT ... in (1,3,2) ORDER BY
    #35573858
coolin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
собственно так будет:

update products set pos=v.ordr
from ( values (30,1), (20,2), (50,3) ) as v (id,ordr) where v.id=products.id
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / SELECT ... in (1,3,2) ORDER BY
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]