3

nullの結果が得られるたびに、結果を「なし」にしようとしています。現在、nullの結果に対して0が返されています。null 結果の 0 ではなく、行に「なし」を表示させるにはどうすればよいでしょうか。

合計に TO_CHAR と TO_NUMBER を試しましたが、「なし」を表示できません...

CASE WHEN SUM(ENROLLED) = 0 THEN 'none' ELSE SUM(ENROLLED) END AS ENROLLED

したがって、上記を試すと、SQLエラーが発生します: ORA-00932: データ型が矛盾しています: 期待されるCHARがNUMBERを取得しました

これは私が持っているものです

SELECT lt.STUDENT_ID,lt.FIRST_NAME, lt.LAST_NAME, CASE WHEN SUM(ENROLLED) = 0 THEN 'none' ELSE SUM(ENROLLED) END AS ENROLLED
FROM STUDENT lt
LEFT OUTER JOIN
(SELECT s.STUDENT_ID, e.ENROLL_DATE,COUNT(z.COURSE_NO)AS ENROLLED
FROM   STUDENT s
LEFT   JOIN ENROLLMENT e ON s.STUDENT_ID = e.STUDENT_ID
LEFT   JOIN SECTION z ON e.SECTION_ID = z.SECTION_ID
WHERE  s.PHONE LIKE '702%'
GROUP  BY s.STUDENT_ID, e.ENROLL_DATE) rt
ON lt.STUDENT_ID = rt.STUDENT_ID
WHERE lt.PHONE LIKE '702%'
GROUP BY lt.STUDENT_ID,lt.FIRST_NAME, lt.LAST_NAME,ENROLLMENTS;

持つ代わりに

STUDENT_ID FIRST_NAME                LAST_NAME                 ENROLLED
---------- ------------------------- ------------------------- -----------
       253 Walter                    Boremmann                     1 
       396 James E.                  Norman                        0 
etc

私はそれをこのようにしたいと思います

STUDENT_ID FIRST_NAME                LAST_NAME                 ENROLLED
---------- ------------------------- ------------------------- -----------
       253 Walter                    Boremmann                     1 
       396 James E.                  Norman                        none
4

4 に答える 4