通常在查询我的 MS SQL Server 数据库时,我需要创建一个计算字段,例如
(CASE WHEN A.type = 'Workover' THEN 'Workover'
ELSE (CASE WHEN substring(C.category, 2, 1) = 'D' THEN 'Drilling'
WHEN substring(C.category, 2, 1) = 'C' THEN 'Completion'
WHEN substring(C.category, 2, 1) = 'W' THEN 'Workover'
ELSE 'Other'
END)
END)
Run Code Online (Sandbox Code Playgroud)
然后我需要通过这个计算字段(等等)对我的结果进行分组。因此,我在 SELECT 和 GROUP BY 子句中进行了相同的计算。SQL 服务器实际上执行了两次这些计算,还是它足够聪明,只执行一次?
sql-server ×1