SQL. Как прописью написать число в SQL
select [dbo].[as_numPropis] (1234, 1)
Первый параметр число. Второй параметр - род. Если 1, то мужской; если 0, то женский (“один, одна”)
Сама функция:
ALTER function [dbo].[as_numPropis] (@num BIGINT, @isMaleGender bit=1)
returns varchar(255)
as
begin
declare @nword varchar(255), @th tinyint, @gr smallint, @d3 tinyint, @d2
tinyint, @d1 tinyint
if @num<0 return '*** Error: Negative value' else if @num=0 return 'Ноль'
/* особый случай */
while @num>0
begin
set @th=IsNull(@th,0)+1 set @gr=@num%1000 set @num=(@num-@gr)/1000
if @gr>0
begin
set @d3=(@gr-@gr%100)/100
set @d1=@gr%10
set @d2=(@gr-@d3*100-@d1)/10
if @d2=1 set @d1=10+@d1
set @nword=
case @d3
when 1 then ' сто'
when 2 then ' двести'
when 3 then ' триста'
when 4 then ' четыреста'
when 5 then ' пятьсот'
when 6 then ' шестьсот'
when 7 then ' семьсот'
when 8 then ' восемьсот'
when 9 then ' девятьсот'
else ''
end +
case @d2
when 2 then ' двадцать'
when 3 then ' тридцать'
when 4 then ' сорок'
when 5 then ' пятьдесят'
when 6 then ' шестьдесят'
when 7 then ' семьдесят'
when 8 then ' восемьдесят'
when 9 then ' девяносто'
else ''
end +
case @d1
when 1 then (case when @th=2 or (@th=1 and @isMaleGender=0) then ' одна' else ' один' end)
when 2 then (case when @th=2 or (@th=1 and @isMaleGender=0) then ' две' else ' два' end)
when 3 then ' три'
when 4 then ' четыре'
when 5 then ' пять'
when 6 then ' шесть'
when 7 then ' семь'
when 8 then ' восемь'
when 9 then ' девять'
when 10 then ' десять'
when 11 then ' одиннадцать'
when 12 then ' двенадцать'
when 13 then ' тринадцать'
when 14 then ' четырнадцать'
when 15 then ' пятнадцать'
when 16 then ' шестнадцать'
when 17 then ' семнадцать'
when 18 then ' восемнадцать'
when 19 then ' девятнадцать'
else ''
end +
case @th
when 2 then ' тысяч' + (
case
when @d1=1 then 'а'
when @d1 in (2,3,4)
then 'и'
else ''
end)
when 3 then ' миллион'
when 4 then ' миллиард'
when 5 then ' триллион'
when 6 then ' квадрилион'
when 7 then ' квинтилион'
else ''
end +
case
when @th in (3,4,5,6,7) then (
case
when @d1=1 then ''
when @d1 in (2,3,4) then 'а'
else 'ов'
end)
else ''
end
+ IsNull(@nword,'')
end
end
return upper(substring(@nword,2,1))+substring(@nword,3,len(@nword)-2)
end
Что еще посмотреть по SQL Server
SQL. Как работать с датами в SQL Server
SQL Server. Как переносить на новую строку в строковой переменной в SQL
SQL. Вывод разметки HTML в сыром виде (в виде тегов) в SQL
SQL. Как привести дату в строку в нужный формат в SQL Server
SQL. Как использовать select from Хранимка
SQL. Как массово залить данные в таблицу БД через CSV (Excel)
SQL. Как перенести сложный тип данных на другую базу
SQL. Как перевести дату JS в дату SQL
SQL. Как выводить окончание у множественного числа (5 заказОВ, 3 заказА)
Настройка полнотекстового поиска fulltext search в SQL Server
Разработчик SQL, нужны клиенты и заказы?
Прямые заказы от клиентов. Нужно знать только SQL и HTML
Выгода от использования Falcon Space
В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Нужна бесплатная консультация?
Планируете делать веб-проект?
- Шаг 1. Создать концепт проекта
- Шаг 2. Получить оценку бюджета (КП)
- Шаг 3. Заключить договор
- Шаг 4. Создать совместно техническое задание
- Шаг 5. Поэтапная реализация проекта