【问题标题】:Need Sorting With External Array or Comma Separated data需要使用外部数组或逗号分隔的数据进行排序
【发布时间】:2019-02-05 12:32:14
【问题描述】:

我正在使用 PostgreSQL 8.0.2,我有表

create table rate_date (id serial, rate_name text); 

它的数据是

 id  rate_name
 --------------
 1   startRate
 2   MidRate
 3   xlRate
 4   xxlRate    

选择后,它将显示具有默认顺序或顺序的数据,应用于同一表的任何列。我的要求是我有一个单独的实体,我将从那里获取数据(xlRate,MidRate,startRate,xxlRate),所以我想使用这些数据对表 rate_data 上的选择进行排序。我已经尝试过价值加入,但它不起作用,并且没有其他解决方案能够认为会起作用。如果有人有想法,请分享详细信息。

输出应该是

xlRate
MidRate
startRate
xxlRate  

我的尝试/思考。

select id, rate_name 
from rate_date r
join (
  VALUES (1, 'xlRate'),(2, 'MidRate')
) as x(a,b) on x.b = c.rate_name

【问题讨论】:

  • 样本数据和期望的结果真的很有帮助。另外,你应该升级 Postgres 的版本。
  • 嗨@GordonLinoff 谢谢,版本更新是不可能的,示例我添加了 2 列 id 和 rate_name 的表。
  • Postgres 8.0 早已死去,忘记了你不应该再使用它了
  • 您必须添加一些CREATE TABLE 声明和您的尝试,以便我们知道您在说什么。此外,升级。这是可能的(并且可能会保存您的数据库)。

标签: sql postgresql postgresql-8.0


【解决方案1】:

我不确定这是否有帮助,但在 Oracle 中您可以通过这种方式实现:

select *
from
(
select id, rate_name,
case rate_name
    when 'xlRate' then 1
    when 'MidRate' then 2
    when 'startRate' then 3
    when 'xxlRate' then 4
    else 100
end my_order    
from rate_date r
)
order by my_order

你可以在 PostgreSQL 中做这样的事情吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-14
    • 1970-01-01
    • 2021-12-06
    • 2020-03-14
    • 2017-07-17
    • 1970-01-01
    相关资源
    最近更新 更多