2017-04-04 157 views
0

我无法弄清楚如何用'none'替换0。我在这里做错了什么?使用NVL显示'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

NULL与数字0不同。COUNT返回0,而不是NULL。 NVL替换NULL,而不是数字0.这有帮助吗? – mathguy

+0

如果这回答了您的问题,请将其标记为接受的答案。否则,请提供更多详情。 – SandPiper

回答

1

替换单个语句:

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

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

相关问题