PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

SQL:Đảo ngược chuyển vị một bảng

không rõ bạn khôi phục các giá trị "A", "B", "C" như thế nào nên tôi chỉ thêm chúng vào

chuẩn bị:

t=# create table s188 (scanid int,a float, b float,c float);
CREATE TABLE
t=# insert into s188 select 1,2,3,4;
INSERT 0 1
t=# insert into s188 select 2,12,13,14;
INSERT 0 1
t=# select * from s188;
 scanid | a  | b  | c
--------+----+----+----
      1 |  2 |  3 |  4
      2 | 12 | 13 | 14
(2 rows)

chọn:

t=# with a as (
  select scanid,unnest(array[a,b,c]) from s188
)
select scanid,chr((row_number() over (partition by scanid))::int + 64),unnest
from a;
 scanid | chr | unnest
--------+-----+--------
      1 | A   |      2
      1 | B   |      3
      1 | C   |      4
      2 | A   |     12
      2 | B   |     13
      2 | C   |     14
(6 rows)

và giải pháp gọn gàng hơn từ a_horse_with_no_name

t=# with a as (
  select scanid, x.*
  from s188, unnest(array[a,b,c]) with ordinality as x(volume,idx)
)
select scanid,
       chr(idx::int + 64) as region,
       volume
from a;
 scanid | region | volume
--------+--------+--------
      1 | A      |      2
      1 | B      |      3
      1 | C      |      4
      2 | A      |     12
      2 | B      |     13
      2 | C      |     14
(6 rows)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lặp lại kích thước mảng trong plpgsql

  2. JPA tạo các khóa trùng lặp

  3. Hàm tổng hợp giá trị đầu tiên và giá trị cuối cùng trong postgresql hoạt động chính xác với các giá trị NULL

  4. Lỗi không xác định phương thức `to_key 'cho [xxx]:Mảng khi cố gắng sử dụng dữ liệu mảng trên Quản trị viên hoạt động table_for (Rails, Postgresql, postgres_ext gem)

  5. Sử dụng bộ mã hóa JSON tùy chỉnh để triển khai JSONB PostgreSQL của SQLAlchemy