Архив

Публикации с меткой ‘declination’

SQL Склонение количества ошибок

9 Февраль 2016 2 comments


Пример SQL запроса для склонения слова «ошибка» для вывода количества ошибок: «Найдена 1 ошибка»; «Найдено 3 ошибки»; «Найдено 5 ошибок» :

select 
  val
 ,case when mod(val,10) between 2 and 4 then 'Найдено '||val||' ошибки'
       
       when val between 11 and 14 or mod(val,10) between 5 and 9 
            or mod(val,10) = 0 then 'Найдено '||val||' ошибок' 
                          
       when mod(val,10) = 1 then 'Найдена '||val||' ошибка'
 end str
from ( select level val from dual connect by level<=25 )

       VAL STR
---------- -------------------------------------------------------
         1 Найдена 1 ошибка
         2 Найдено 2 ошибки
         3 Найдено 3 ошибки
         4 Найдено 4 ошибки
         5 Найдено 5 ошибок
         6 Найдено 6 ошибок
         7 Найдено 7 ошибок
         8 Найдено 8 ошибок
         9 Найдено 9 ошибок
        10 Найдено 10 ошибок
        11 Найдено 11 ошибок
        12 Найдено 12 ошибки
        13 Найдено 13 ошибки
        14 Найдено 14 ошибки
        15 Найдено 15 ошибок
        16 Найдено 16 ошибок
        17 Найдено 17 ошибок
        18 Найдено 18 ошибок
        19 Найдено 19 ошибок
        20 Найдено 20 ошибок
        21 Найдена 21 ошибка
        22 Найдено 22 ошибки
        23 Найдено 23 ошибки
        24 Найдено 24 ошибки
        25 Найдено 25 ошибок
25 rows selected