Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
参数中的Postgresql-9.1更改了排序顺序_Postgresql_Orm - Fatal编程技术网

参数中的Postgresql-9.1更改了排序顺序

参数中的Postgresql-9.1更改了排序顺序,postgresql,orm,Postgresql,Orm,我有一些ID,它已经按顺序排序(658267855456666)。我在select查询中传递了此输入以获取数据,但在输出中排序顺序将更改并返回结果(456666582678555) 从blc\u sku中选择sku id,其中sku id位于(658267855456666)但输出返回为 但是预期的结果呢, 请帮我解决这个问题 t=> with v(a) as (values (2),(1),(3)) select * from v t-> where a in (1,2,3) t-

我有一些ID,它已经按顺序排序(658267855456666)。我在select查询中传递了此输入以获取数据,但在输出中排序顺序将更改并返回结果(456666582678555)

从blc\u sku中选择sku id,其中sku id位于(658267855456666)
但输出返回为

但是预期的结果呢,

请帮我解决这个问题

t=> with v(a) as (values (2),(1),(3))
select * from v
t-> where a in (1,2,3)
t-> ;
 a
---
 2
 1
 3
(3 rows)
您可以看到,结果是按照满足数据的顺序,而不是按照您在中设置的顺序。尽管如此,Postgres并不能保证这种行为(而且你无法预测数据的满足顺序——这取决于缓存和其他我不知道的东西)。如果您想要有序的结果集,请使用
ORDER
指令:

t=> with v(a) as (values (2),(1),(3))
select * from v
where a in (1,2,3)
order by a desc;
 a
---
 3
 2
 1
(3 rows)
如果您有一个预排序列表,您可以根据它加入初始数据,如下所示:

t=> with v(a) as (values (2),(1),(3))
, ordered (v,o) as (values(1,0), (2,1), (3,2))
select v.* from v
join ordered on v.a=ordered.v
order by o;
 a
---
 1
 2
 3
(3 rows)
您可以看到,结果是按照满足数据的顺序,而不是按照您在中设置的顺序。尽管如此,Postgres并不能保证这种行为(而且你无法预测数据的满足顺序——这取决于缓存和其他我不知道的东西)。如果您想要有序的结果集,请使用
ORDER
指令:

t=> with v(a) as (values (2),(1),(3))
select * from v
where a in (1,2,3)
order by a desc;
 a
---
 3
 2
 1
(3 rows)
如果您有一个预排序列表,您可以根据它加入初始数据,如下所示:

t=> with v(a) as (values (2),(1),(3))
, ordered (v,o) as (values(1,0), (2,1), (3,2))
select v.* from v
join ordered on v.a=ordered.v
order by o;
 a
---
 1
 2
 3
(3 rows)

谢谢沃森。很好,谢谢你,沃森。它很好用。。