Skip to Main Content

Oracle Database Discussions

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

COALESCE and ROLLUP

Madhu.149Nov 20 2014 — edited Nov 20 2014

Dear All,

Why Oracle and MySQL giving different results

--- Oracle

SELECT

                COALESCE(UPPER(CAST(EMPLOYEE_ID AS VARCHAR(200))), '~') AS "EMPLOYEE_ID ",

                COALESCE(UPPER(CAST(FIRST_NAME AS VARCHAR(200))), '~') AS "FIRST_NAME ",

                COALESCE(UPPER(CAST(DEPARTMENT_ID AS VARCHAR(200))), '~') AS "JOB_ID ",

                SUM(SALARY) AS "SALARY "

FROM

                EMPLOYEES

WHERE

                EMPLOYEE_ID = 178

GROUP BY

                ROLLUP(COALESCE(UPPER(CAST(EMPLOYEE_ID AS VARCHAR(200))), '~'),

                                   COALESCE(UPPER(CAST(FIRST_NAME AS VARCHAR(200))), '~'),

                                   COALESCE(UPPER(CAST(DEPARTMENT_ID AS VARCHAR(200))), '~'))

ORDER BY

                "EMPLOYEE_ID ",

                "FIRST_NAME ",

                "JOB_ID ",

                "SALARY "

Output:

178KIMBERELY~7000
178KIMBERELY7000
1787000
7000

-----------------------------

--MySQL

SELECT

COALESCE(UPPER(EMPLOYEE_ID), '~') AS "EMPLOYEE_ID ",

  COALESCE(UPPER(FIRST_NAME), '~') AS "FIRST_NAME ",

  COALESCE(UPPER(DEPARTMENT_ID), '~') AS "DEPARTMENT_ID ",

  SUM(SALARY) AS "SALARY "

FROM employees WHERE EMPLOYEE_ID = 178

GROUP BY

  COALESCE(UPPER(EMPLOYEE_ID), '~'),

  COALESCE(UPPER(FIRST_NAME), '~'),

  COALESCE(UPPER(DEPARTMENT_ID), '~')

WITH ROLLUP

Result

178KIMBERELY~7000
178KIMBERELY7000
178KIMBERELY7000
KIMBERELY7000

Why FIRST_NAME is repeating?

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Dec 18 2014
Added on Nov 20 2014
4 comments
323 views