使用NVL显示“无”而不是0

时间:2017-04-04 20:36:53

标签: sql database oracle

我无法弄清楚如何用'none'替换0。我在这里做错了什么?

SELECT s.student_id, s.first_name, s.last_name, NVL(TO_CHAR(COUNT(e.student_id)), 'none')  AS enrollments
FROM student s
LEFT OUTER JOIN enrollment e
ON s.student_id = e.student_id
WHERE s.phone LIKE '%617%'
GROUP BY s.student_id, s.first_name, s.last_name
ORDER BY s.last_name, s.first_name;

1 个答案:

答案 0 :(得分:1)

将该单一陈述改为:

DECODE(COUNT(e.student_id), 0, 'none', COUNT(e.student_id)) AS enrollments

它的作用是先检查计数;如果没有适用的值,COUNT将返回0.然后,它将解码为您的字符串。如果有记录,它将返回COUNT函数。