这段sql没有获取到结果,帮我优化它: CASE WHEN (( `a`.`EPI_MOCVD_STATUS_AT` IS NOT NULL ) AND isnull( `b`.`SURFACE_INSPECTION_STATUS_AT` )) THEN '外延生长' WHEN (( `b`.`SURFACE_INSPECTION_STATUS_AT` IS NOT NULL ) AND isnull( `c`.`PERFORMANCE_SAMPLING_STATUS_AT` )) THEN 'SURFACE检测' WHEN isnull( `a`.`EPI_MOCVD_STATUS_AT` ) THEN '性能抽检' END ) AS `WORK_STATION_NAME`
时间: 2023-08-03 13:06:07 浏览: 192
epi_edge.rar_EPI_edge detection
可以尝试优化这段 SQL 代码,将 CASE 语句转换为使用 COALESCE 函数来进行条件判断和返回结果。以下是优化后的代码:
```sql
COALESCE(
CASE
WHEN `a`.`EPI_MOCVD_STATUS_AT` IS NOT NULL AND ISNULL(`b`.`SURFACE_INSPECTION_STATUS_AT`) THEN '外延生长'
END,
CASE
WHEN `b`.`SURFACE_INSPECTION_STATUS_AT` IS NOT NULL AND ISNULL(`c`.`PERFORMANCE_SAMPLING_STATUS_AT`) THEN 'SURFACE检测'
END,
CASE
WHEN ISNULL(`a`.`EPI_MOCVD_STATUS_AT`) THEN '性能抽检'
END
) AS `WORK_STATION_NAME`
```
通过使用 COALESCE 函数,可以避免多个嵌套的 WHEN 子句,提高代码的可读性和性能。
阅读全文