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

sử dụng các giá trị đã chọn sql làm tên hàng cho một lựa chọn khác

Đối với SQL Server 2005+, bạn có thể sử dụng SQL động và PIVOT .

DECLARE @ValuesNames NVARCHAR(4000), @Query NVARCHAR(MAX)
SET @ValuesNames = ''

SELECT @ValuesNames = @ValuesNames + QUOTENAME([name]) + ','
FROM [values] A
INNER JOIN value_type B
ON B.value_id = A.id
GROUP BY [name]
ORDER BY [name]

SET @ValuesNames = LEFT(@ValuesNames,LEN(@ValuesNames)-1)

SET @Query = '
SELECT [date], '[email protected]+'
FROM (  SELECT [date], [name], value
        FROM [values]
        LEFT JOIN value_type ON value_id = id) A
PIVOT(SUM(value) FOR [name] IN ('[email protected]+')) AS PT
'
EXEC sp_executesql @Query


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thay đổi đối chiếu SQL Server thành phân biệt chữ hoa chữ thường từ phân biệt chữ hoa chữ thường?

  2. Làm cách nào để bỏ khóa ngoại trong SQL Server?

  3. Không thể lấy thông tin về nhóm / người dùng Windows NT

  4. Làm cách nào để kiểm tra xem có tồn tại ràng buộc SQL Server hay không?

  5. Lỗi tên cột không rõ ràng