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

Thêm tên bảng vào mỗi cột trong tập hợp kết quả trong SQL? (Cụ thể là Postgres)

Tôi biết câu hỏi này hơi cũ, nhưng có lẽ ai đó sẽ vấp phải câu trả lời và nó sẽ giúp ích cho họ.

Cách thích hợp để thực hiện những gì bạn đang tìm kiếm là tạo và sử dụng Chế độ xem. Vâng, sẽ hơi tẻ nhạt một lần khi gõ tất cả các tên cột mới đó làm bí danh, nhưng nếu có nhiều cột, đây là một mẹo bạn có thể sử dụng để tận dụng siêu dữ liệu PostgreSQL để viết ra văn bản của dạng xem:

select 'CREATE OR REPLACE VIEW people AS SELECT ' || 
(select string_agg(column_name || ' AS person_' || column_name, ', ')
from information_schema.columns
where table_name = 'person'
group by table_name) || 
' FROM person;';

chạy điều này sẽ mang lại:

cột
?column?                                                 
------------------------------------------------------------------------------------------------------------- 
CREATE OR REPLACE VIEW people AS SELECT last_name AS person_last_name, first_name AS person_first_name FROM person; 

1 record(s) selected [Fetch MetaData: 0/ms] [Fetch Data: 0/ms]
[Executed: 4/21/12 2:05:21 PM EDT ] [Execution: 9/ms]

sau đó bạn có thể sao chép và thực thi các kết quả và thì đấy:

select * from people;

 person_last_name     person_first_name    
 -------------------  -------------------- 
 Melvoin              Wendy                
 Coleman              Lisa                 

 2 record(s) selected [Fetch MetaData: 1/ms] [Fetch Data: 0/ms] 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ứng dụng Spring Boot bị kẹt trên Hikari-Pool-1 - Đang khởi động ...

  2. Bánh xe xây dựng không thành công cho psycopg2 - MacOSX sử dụng virtualenv và pip

  3. Truy vấn PostgreSQL cho danh sách các giá trị được phép trong một ràng buộc?

  4. Các bảng đủ điều kiện của lược đồ với SQLAlchemy, SQLite và Postgresql?

  5. postgres:lấy n lần xuất hiện hàng đầu của một giá trị trong mỗi nhóm