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

Cần T-SQL trợ giúp để chuyển đổi Hàng từ nhiều bảng thành Cột có giá trị trong Sql Server 2005

Suy nghĩ đầu tiên của tôi là cải thiện lược đồ và bạn có thực sự cần làm điều này không.

Để đơn giản hóa câu hỏi, có vẻ như bạn muốn đặt tên cột dựa trên một phép nối thành mstBCE, bạn không cần quan hệ vì số lượng cột trong tblBCE là cố định. Thay vào đó, hãy sử dụng sql động để đặt tên cột được chọn từ mstBCE được xoay vào một hàng.

DECLARE @sql nvarchar(4000); 
SELECT @sql = N'SELECT u.[username], u.[department], 
b.[Option1TB] as [' + pvt.[1] + N'], b.[Option1], 
b.[Option2TB] as [' + pvt.[2] + N'], b.[Option2], 
b.[Option3TB] as [' + pvt.[3] + N'], b.[Option3] 
FROM tblBCE as b 
JOIN tblUser as u ON b.[UserID] = u.[userid]; ' 
FROM (
    SELECT [tabconfigid], [tabdata] 
    FROM mstBCE 
    WHERE [tabType] = N'BCE'
) as m 
PIVOT ( MIN(m.[tabdata]) FOR m.[tabconfigid] IN ([1], [2], [3]) ) as pvt; 

EXEC (@sql); 



  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ể kết nối với Máy chủ SQL bên ngoài mạng của tôi không?

  2. Làm cách nào để sử dụng BCP hoặc Sql Server Management Studio để lấy dữ liệu BLOB ra khỏi Sql Server?

  3. Cách lấy tất cả các Bảng có hoặc không có Ràng buộc khóa chính trong Cơ sở dữ liệu máy chủ Sql - Hướng dẫn sử dụng SQL Server / TSQL 59

  4. Chèn vào Bảng Temp trong CTE

  5. SQL Server - Chèn đồng thời vào bảng từ nhiều máy khách - Kiểm tra Giới hạn và Chặn