oracle 优化 SELECT A.JGDH, DG.ZHHAO, DG.ZHMC, B.FZRMC, A.ZHXZ, B.QYJYFW, B.ZZZCDZ, '' BGRQ, CASE WHEN A.JGDH <> C.GSJGH THEN JGDH ELSE '' END || CASE WHEN DG.ZHMC <> C.ZHMC THEN ',' || ZHMC ELSE '' END || CASE WHEN B.FZRMC <> C.FRDB THEN ',' || FRDB ELSE '' END || CASE WHEN B.ZHXE <> C.ZHXZ THEN ',' || ZHXZ ELSE '' END || CASE WHEN B.FZRMC <> C.FRDB THEN ',' || FRDB ELSE '' END || CASE WHEN B.QYJYFW <> C.QYJYFW THEN ',' || QYJYFW ELSE '' END || CASE WHEN B.ZZZCDZ <> C.ZCDZ THEN ',' || ZCDZ ELSE '' END AS BGXM, '' CJRQ FROM M_ZH_ZHXX_DG DG INNER JOIN F_HQDGZWJ A ON DG.ZHHAO = A.ZHDH INNER JOIN F_DGKHXXWJ B ON DG.KHTYBH = B.KHDH INNER JOIN M_KH_QYFRBG_YES C ON DG.ZHHAO = C.ZHDH WHERE A.JGDH <> C.GSJGH OR DG.ZHMC <> C.ZHMC OR B.FZRMC <> C.FRDB OR B.ZHXE <> C.ZHXZ OR B.QYJYFW <> C.QYJYFW OR B.ZZZCDZ <> C.ZCDZ ;
时间: 2024-02-14 12:18:47 浏览: 161
这段代码是一个 Oracle 数据库中的 SELECT 语句,用于查询 M_ZH_ZHXX_DG、F_HQDGZWJ、F_DGKHXXWJ 和 M_KH_QYFRBG_YES 四个表中的数据,并进行一些条件筛选和拼接。其中:
- A.JGDH 表示表 A 中的 JGDH 字段;
- DG.ZHHAO 表示表 DG 中的 ZHHAO 字段;
- DG.ZHMC 表示表 DG 中的 ZHMC 字段;
- B.FZRMC 表示表 B 中的 FZRMC 字段;
- A.ZHXZ 表示表 A 中的 ZHXZ 字段;
- B.QYJYFW 表示表 B 中的 QYJYFW 字段;
- B.ZZZCDZ 表示表 B 中的 ZZZCDZ 字段;
- '' BGRQ 表示一个空字符串;
- CASE WHEN ... END AS BGXM 表示对多个条件进行判断,并将结果拼接为一个字符串,赋值给 BGXM 字段;
- '' CJRQ 表示一个空字符串;
- INNER JOIN 表示两个表的内连接操作,即只返回两个表都有的记录;
- ON 后面的条件表示连接两个表的条件;
- WHERE 后面的条件表示对查询结果进行筛选的条件。
该 SQL 语句的作用是查询 M_ZH_ZHXX_DG、F_HQDGZWJ、F_DGKHXXWJ 和 M_KH_QYFRBG_YES 四个表中的数据,并将这四个表中各自的字段拼接为一个字符串,赋值给 BGXM 字段。同时,还会对一些字段进行筛选,例如 A.JGDH 不等于 C.GSJGH,DG.ZHMC 不等于 C.ZHMC 等等。最终返回的结果包括 JGDH、ZHHAO、ZHMC、FZRMC、ZHXZ、QYJYFW、ZZZCDZ、BGXM 和 CJRQ 等字段的数据。
阅读全文