2017-04-04 8 views
0

0を 'none'に置き換える方法がわかりません。私はここで間違って何をしていますか?NVLを使って0の代わりに 'none'を表示

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はNULLではなく0を返します。 NVLは数字0ではなくNULLを置き換えます。それは役に立ちますか? – mathguy

+0

これがあなたの質問に答えた場合、それを受け入れられた回答としてマークしてください。それ以外の場合は、詳細を入力してください。 – SandPiper

答えて

1

と、その単一のステートメントを置き換えます。それは何

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

それは最初のカウントをチェックしています。該当する値がない場合、COUNTは0を返します。次に、それをあなたの文字列にデコードします。レコードがあれば、代わりにCOUNT関数を返します。

関連する問題