可以使用 PIVOT 函数对该字段进行转置操作,将其作为列来查询。具体操作如下:

  1. 使用 CTE 或子查询将该字段转换成带有行标识的表:
WITH CTE AS 
(
   SELECT ROW_NUMBER() OVER (ORDER BY <排序字段>) AS RowNum, <原始表>
)
-- 或者
SELECT ROW_NUMBER() OVER (ORDER BY <排序字段>) AS RowNum, <原始表>
FROM <原始表>
  1. 使用 PIVOT 函数将该字段作为列进行查询:
SELECT <列1>, <列2>, ..., <该字段数据1>, <该字段数据2>, ..., <该字段数据n>
FROM 
(
   SELECT <行标识列>, <该字段>
   FROM CTE -- 或者子查询
) AS SourceTable
PIVOT
(
   MAX(<该字段>) FOR <该字段> IN (<该字段数据1>, <该字段数据2>, ..., <该字段数据n>)
) AS PivotTable

其中,<列1>, <列2>, ...为需要查询的其他列,<该字段数据1>, <该字段数据2>, ..., <该字段数据n>为该字段中的所有数据值。如果需要对数据进行聚合操作,可以在 PIVOT 函数中使用 SUM、AVG 等聚合函数。

SQL Server 使用 PIVOT 函数将字段数据转置为列查询

原文地址: https://www.cveoy.top/t/topic/n3p0 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录