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

Truy vấn Pivot động mà không lưu trữ truy vấn dưới dạng chuỗi

Câu trả lời ngắn gọn: không.

Câu trả lời dài:

Chà, đó vẫn là không . Nhưng tôi sẽ cố gắng giải thích tại sao. Kể từ hôm nay, khi bạn chạy truy vấn, công cụ DB yêu cầu phải biết cấu trúc tập kết quả (số cột, tên cột, kiểu dữ liệu, v.v.) mà truy vấn sẽ trả về. Do đó, bạn phải xác định cấu trúc của tập kết quả khi bạn hỏi dữ liệu từ DB. Hãy nghĩ về nó:bạn đã bao giờ chạy một truy vấn mà bạn không biết trước cấu trúc tập kết quả chưa?

Điều đó cũng áp dụng ngay cả khi bạn select * , chỉ là một cú pháp đường. Cuối cùng, cấu trúc trả về là "tất cả các cột trong (các) bảng như vậy".

Bằng cách tập hợp một chuỗi, bạn tự động tạo ra cấu trúc mà bạn mong muốn, trước khi yêu cầu tập kết quả. Đó là lý do tại sao nó hoạt động.

Cuối cùng, bạn nên biết rằng việc lắp ráp chuỗi động có thể về mặt lý thuyết và tiềm năng (mặc dù không thể xảy ra) giúp bạn có được một tập hợp kết quả với vô số cột. Tất nhiên, điều đó là không thể và nó sẽ thất bại, nhưng tôi chắc rằng bạn đã hiểu ý nghĩa của nó.

Cập nhật

Tôi đã tìm thấy điều này, điều này củng cố lý do tại sao nó không hoạt động.

Tại đây :

Tôi sẽ tiếp tục tìm kiếm và bổ sung ở đây.




  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 ký tên máy chủ mới trong Sql Managment Studio

  2. Kết nối cơ sở dữ liệu từ xa mở trong thời gian dài

  3. SQL Server - tham gia bên trong khi cập nhật

  4. Báo cáo xác thực thông số trong báo cáo ssrs

  5. Tạo cơ sở dữ liệu mới từ bản sao lưu của một Cơ sở dữ liệu khác trên cùng một máy chủ?