转动varchar值

时间:2018-02-20 20:53:09

标签: sql sql-server pivot

我想将原始数据转换为透视数据,下面是我的代码:

import play.api.libs.json._

object RepositoryMetadata {
   implicit val repositoryMetadataWrites = Json.writes[RepositoryMetadata]  
}

我无法完成此代码段。

3 个答案:

答案 0 :(得分:1)

请忽略max()并使用select CVID, CID, max(case when ext_id = 'q_begin' then ans end) as [q_begin], max(case when ext_id = 'q_end' then ans end) as [q_end] from #temp group by CVID, CID;

{{1}}

答案 1 :(得分:1)

首先,您不能SUM个日期,您需要使用MINMAX。除此之外,您还需要GROUP BY QUART列。

因此,您需要使用的代码应为:

SELECT  CVID, 
        CID, 
        QUART,
        MIN(CASE WHEN ext_id = 'q_begin' THEN ans END) [q_begin],
        MIN(CASE WHEN ext_id  = 'q_end' THEN ans END) [q_end]
FROM #temp 
GROUP BY CVID, 
         CID,
         QUART
;

答案 2 :(得分:1)

或者你可以PIVOT

select      *
from        #temp
pivot       (
                max(ans)
                for ext_id in ([q_begin], [q_end])
            ) p