zrób to już po stronie aplikacji- w serwisie który odbiera dane, po prostu jesli dane będą takie jak oczekujesz "tutaj 0" to - zamień ten element na oczekiwany "-".
Z poziomu zapytania można to zrealizować, natomiast jest to bardzo nieefektywne bo jednak ingeruje w samo zapytanie, na wielkich zbiorach danych problem rośnie
https://stackoverflow.com/questions/48638229/how-can-i-replace-the-null-or-0-value-to-dash
Aby w SQL zamienić wynik 0 na myślniki, możesz użyć funkcji COALESCE. Funkcja COALESCE przyjmuje listę argumentów i zwraca pierwszą wartość nie-NULL z listy.
Jeśli wszystkie wartości na liście są NULL, COALESCE zwraca NULL.
aby zamienić wynik 0 na myślniki w poleceniu SELECT:
SELECT COALESCE(nazwa_kolumny, '-') AS nazwa_kolumny
FROM nazwa_tabeli
WHERE warunek;
Aby zamienić wszystkie wyniki 0 na myślniki dla wielu wierszy w tabeli w SQL, możesz użyć funkcji COALESCE w połączeniu z instrukcją UPDATE
UPDATE nazwa_tabeli
SET kolumna = COALESCE(kolumna, '-')
WHERE kolumna = 0;
Ostatecznie aby pobrać dane z tabeli jako SELECT i zamienić zera na myślniki, możesz użyć funkcji COALESCE w połączeniu z instrukcją SELECT. Oto przykład, jak to zrobić:
SELECT COALESCE(kolumna, '-') AS kolumna
FROM nazwa_tabeli
WHERE warunek;
Możesz również dodać warunek WHERE, i w ten sposób ograniczyć zakres wyników do określonych wierszy w tabeli.
Natomiast polecam jednak pobrac "naturalnie dane za pomocą sql" i zrobić to po stronie serwisu odbierającego dane.