( SELECT (concat_ws('-',CASE WHEN soce.grade = 3 THEN ( SELECT syso.NAME FROM sys_office syso WHERE syso.id = soce.parent_id ) END, CASE WHEN soce.grade <= 3 THEN soce.NAME END ) ) FROM sys_office soce WHERE soce.id=o.id ) AS handleOfficeName,分析这段sql
时间: 2024-02-10 11:32:31 浏览: 108
这段 SQL 是一个嵌套查询语句,主要用于查询 `sys_office` 表中的数据,并根据 `grade` 和 `parent_id` 字段来生成 `handleOfficeName` 字段。
具体来说,`concat_ws` 函数将两个字符串用 `-` 连接起来,其中第一个字符串为 `syso.NAME`,它是根据当前行的 `parent_id` 字段在 `sys_office` 表中查询得到的。如果当前行的 `grade` 字段等于 3,那么需要通过 `parent_id` 字段查找 `sys_office` 表中的上级机构名称;否则,只需要将当前行的 `NAME` 字段用 `-` 连接即可。
整个查询语句将结果保存在 `handleOfficeName` 字段中,并返回给调用者。
阅读全文