whats the total number of лs in:
q: как в sql проставить определенное количество цифр после запятой? для значений нужно 3 знака после запятой, а для процентов 2 знака и они должны присутствовать всегда. 
я видел прием с to_char, но у меня могут быть значения разной длины, поэтому этот метод не слишком предпочтителен для меня. поэтому интересует есть ли простой способ всегда отображать 2-3 цифры после запятой?
round(val, 2) - не работает и выдает следующие результаты:
51708.58
50482.2


a: 
round(val, 2) - не работает и выдает следующие результаты

round(val, 2) работает так, как и должен, он округляет число до двух знаков после запятой. другое дело, что вы видите то, что отображает ваш клиент (так как формат отображения данных не может храниться внутри данных, клиент всё равно будет преобразовывать значение в тот вид, под который он настроен). 
если нет возможности задать маску отображения для числовых значений на клиенте, то вам остается только преобразовывать данные в строку с помощью to_char. 
with t as
   (select 123.3 as num from dual union all
    select 123 as num from dual union all
    select 123.35 as num from dual union all
    select 0.3 as num from dual union all
    select 0.35 as num from dual union all
    select 123.35050 as num from dual union all
    select 1 as num from dual union all
    select -123.3 as num from dual)
select trim(to_char(num, 999999999999999999990.99)) as val
from t


user
The text includes thirty "л"s in total.
assistant