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

SQL động để tạo tên cột?

Đã trả lời rất nhiều câu hỏi này trong nhiều năm bằng cách tạo SQL trục động từ siêu dữ liệu, hãy xem các ví dụ sau:

SQL động Pivot - cách sắp xếp các cột

SQL Server 2005 xoay vòng trên số cột không xác định

Truy vấn hoặc chế độ xem SQL nào sẽ hiển thị "cột động"

Làm cách nào để xoay quanh các thuộc tính của cột XML trong T-SQL

Cách áp dụng nguyên tắc DRY cho các câu lệnh SQL xoay vòng các tháng

Trong trường hợp cụ thể của bạn (sử dụng trục ANSI thay vì tính năng PIVOT của SQL Server 2005):

DECLARE @template AS varchar(max)
SET @template = 'SELECT 
SKU1
{COLUMN_LIST}
FROM
OrderDetailDeliveryReview
Group By
OrderShipToID,
DeliveryDate,
SKU1
'

DECLARE @column_list AS varchar(max)
SELECT @column_list = COALESCE(@column_list, ',') + 'SUM(Case When Sku2=' + CONVERT(varchar, Sku2) + ' Then Quantity Else 0 End) As [' + CONVERT(varchar, Sku2) + '],' 
FROM OrderDetailDeliveryReview
GROUP BY Sku2
ORDER BY Sku2

Set @column_list = Left(@column_list,Len(@column_list)-1)

SET @template = REPLACE(@template, '{COLUMN_LIST}', @column_list)

EXEC (@template)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. “Đảo ngược hàng” trong SQL Server là gì?

  2. Chèn hàng loạt tệp CSV được trích dẫn một phần trong SQL Server

  3. Câu lệnh CASE WHEN cho mệnh đề ORDER BY

  4. MS-SQL có điều kiện AND / OR (thực hiện đánh giá ngắn mạch) không?

  5. Tại sao CTE lại tốt hơn con trỏ / bảng dẫn xuất / truy vấn con / bảng tạm thời, v.v.?