sql - 将我的结果安排在 postgresql 的选择查询中?

标签 sql postgresql

我有一个问题:

select c1,q1,c2,q2,c3,q3,c4,q4 from mxm

结果是:

c1    q1   c2     q2    c3     q3    c4      q4   
9103  4    9114   3.3   9197   1.9   B9151   3000 
9103  15   9107   8.6   9118   8.3   B9100   130.6
9103  3.6  9114   0.6   9197   1.1   B9151   5000

但我想要这样的输出:

9103  4
9114  3.3   
9197  1.9   
B9151 3000 
9103   15   
9107   8.6   
9118   8.3   
B9100  130.6

等等....这在postgresql中可能吗?

最佳答案

如果您希望它们按此顺序排列,则有点棘手。假设您在 mxm 中没有合适的 id 来按顺序识别行:

with t as (
      select row_number() over (order by ??) as seqnum, mxm.*
      from mxm
)
select c, q
from ((select c1, q1, seqnum, 1 as ordering from t) union all
      (select c2, q2, seqnum, 2 from t) union all
      (select c3, q3, seqnum, 3 from t) union all
      (select c4, q4, seqnum, 4 from t)
     ) cq
order by seqnum, ordering;

?? 用于指定记录原始排序的列。

关于sql - 将我的结果安排在 postgresql 的选择查询中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35167565/

相关文章:

sql - 用 HAVING cause 和 CASE 对 GROUP BY 求和 - Postgres

php - 如何注销特定用户 session (php 和 mysql)

sql - 在数据资源管理器中查询增长最快的标签?

postgresql - F3 ORM 添加新记录省略部分字段

mysql - 什么通常更快,通过文件搜索或通过 blob 运行 SQL LIKE %x% 查询?

ruby-on-rails - 带有 json 列参数的范围

sql - 一个检查约束中的多个子句?

sql - 在访问查询中搜索日期和时间

mysql - 在 codeigniter 中实现搜索

PostgreSQL 查询缓存 - 意外关闭连接