SQL Server 交叉表查询 case
今天下午我投身于一项重要任务,那就是将aess数据库中的交叉表数据迁移到SQL server数据库中。在SQL server中,我们不能使用transfrom方法,这让我遇到了一些挑战。但我通过查找相关资料,找到了使用case方法进行转换的解决方案。
让我们看一下原始的aess代码。它的结构涉及到两个表:landundertake和appraiser。代码的主要功能是通过交叉表的方式展示这两个表之间的关系。具体来说,它是根据valuerId和quarterId进行连接,并通过valuerGrade进行分组展示。
```sql
SELECT
appraiser.quarterID,
landUndertake.landcode,
CASE
WHEN landUndertake.appraiserGrade = 'appraiserID1' THEN landUndertake.appraiserID
ELSE NULL
END AS appraiserID_1,
CASE
WHEN landUndertake.appraiserGrade = 'appraiserID2' THEN landUndertake.appraiserID
ELSE NULL
END AS appraiserID_2
FROM
landUndertake
INNER JOIN
appraiser ON landUndertake.quarterID = appraiser.quarterID AND landUndertake.appraiserID = appraiser.appraiserID
GROUP BY
appraiser.quarterID, landUndertake.landcode, landUndertake.appraiserGrade, landUndertake.appraiserID
```