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

Làm thế nào để tạo một dạng xem với 14000 Cột trong đó?

Nghiêm túc? 14.000 cột trong một chế độ xem? Bạn có một vấn đề nghiêm trọng về thiết kế ở đây. Tuy nhiên, nếu bạn muốn bắt đầu, hãy thử truy vấn tổng hợp động này. Nó hoạt động với dữ liệu hạn chế mà bạn đã cung cấp:

DECLARE @ColumnList VARCHAR (MAX)
DECLARE @SQL VARCHAR(MAX)


-- Create a list of distinct Item IDs which will become column headers
SELECT @ColumnList = COALESCE(@ColumnList + ', ','') + 'ItemID' + CAST(I.ItemID AS VARCHAR(12)) FROM (SELECT DISTINCT ItemID FROM Item) I


SET @SQL = '
SELECT
  ShopID, ' + @ColumnList + '
FROM
(  
  SELECT
    s.ShopID,
    ItemID = ''ItemID'' + Cast(i.ItemID as varchar(12)),
    sim.ItemCost
  FROM
      dbo.Shop_Item_Mapping AS sim
      JOIN dbo.Shop AS s ON sim.ShopID = s.ShopID
      JOIN dbo.Item AS i ON SIM.ItemID = i.ItemID
)  T
PIVOT
(
    MIN(ItemCost)
    FOR T.ItemID IN (' + @ColumnList + ')
) AS PVT'


exec (@SQL)

Đã chỉnh sửa tên trường theo câu hỏi đã cập nhật.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tôi có thể làm gì để cải thiện hiệu suất của Hàm thuần túy do người dùng xác định trong SQL Server?

  2. Tại sao không có tùy chọn phân tách, chỉ phân cách số nguyên trong SQL Server?

  3. Thay đổi một cột hiện có thành một cột được tính toán trong SQL Server (Ví dụ T-SQL)

  4. Triển khai chức năng phân trang (bỏ qua / lấy) với truy vấn này

  5. Truy vấn hoặc Công cụ SQL Server để hiển thị Dữ liệu phân cấp