Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как вывести числа в формате?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Т.е. что-то типа функции FORMAT, но для SQL 2008, ну или как самому сделать вывод по формату?

Собственно хотя бы минимум: вывести разделив пробелами тысячи, миллионы, миллиарды

select count(*) as 'total' from t
--------
1 234 567
16 июл 14, 13:42    [16312225]     Ответить | Цитировать Сообщить модератору
 Re: Как вывести числа в формате?  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Winnipuh
Собственно хотя бы минимум: вывести разделив пробелами тысячи, миллионы, миллиарды

не трахайте мозги серверу.. формат отображения чисел -дело клиента..и там ето настраиваеться на раз-два.
16 июл 14, 13:46    [16312252]     Ответить | Цитировать Сообщить модератору
 Re: Как вывести числа в формате?  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
REPLACE(REVERSE(STUFF(REVERSE(CONVERT(VARCHAR,CAST(COUNT(*)AS MONEY),1)),1,3,'')),',',' ')
16 июл 14, 13:58    [16312332]     Ответить | Цитировать Сообщить модератору
 Re: Как вывести числа в формате?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Maxx
Winnipuh
Собственно хотя бы минимум: вывести разделив пробелами тысячи, миллионы, миллиарды

не трахайте мозги серверу.. формат отображения чисел -дело клиента..и там ето настраиваеться на раз-два.


а что делать, надо

зы. нашел уже...
16 июл 14, 13:58    [16312333]     Ответить | Цитировать Сообщить модератору
 Re: Как вывести числа в формате?  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Winnipuh
а что делать, надо

кому надо ? У вас то юзвери в консоль смотрят ? В любом другом средве отображения сие хрень настраиваеться на раз-два. Учитесь не выполнять дурной работы и обосновывать всем свою точку зрения,а то и будтете так емулировать Ексель через t-sql :)
16 июл 14, 14:03    [16312367]     Ответить | Цитировать Сообщить модератору
 Re: Как вывести числа в формате?  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Winnipuh
зы. нашел уже...
а показать?
16 июл 14, 14:03    [16312369]     Ответить | Цитировать Сообщить модератору
 Re: Как вывести числа в формате?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
iap
Winnipuh
зы. нашел уже...
а показать?


CREATE FUNCTION [dbo].[fn_FormatWithCommas] 
(
    @value varchar(50),
	@sep varchar(12)
)
RETURNS varchar(50)
AS
BEGIN
    DECLARE @WholeNumber varchar(50) = NULL, @Decimal varchar(10) = '', @CharIndex int = charindex('.', @value)
    IF (@CharIndex > 0)
        SELECT @WholeNumber = SUBSTRING(@value, 1, @CharIndex-1), @Decimal = SUBSTRING(@value, @CharIndex, LEN(@value))
    ELSE
        SET @WholeNumber = @value

    IF(LEN(@WholeNumber) > 3)
        SET @WholeNumber = dbo.fn_FormatWithCommas(SUBSTRING(@WholeNumber, 1, LEN(@WholeNumber)-3),  @sep) + @sep + RIGHT(@WholeNumber, 3)
    RETURN @WholeNumber + @Decimal
END
GO
16 июл 14, 14:06    [16312392]     Ответить | Цитировать Сообщить модератору
 Re: Как вывести числа в формате?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Maxx
Winnipuh
а что делать, надо

кому надо ? У вас то юзвери в консоль смотрят ? В любом другом средве отображения сие хрень настраиваеться на раз-два. Учитесь не выполнять дурной работы и обосновывать всем свою точку зрения,а то и будтете так емулировать Ексель через t-sql :)


мне надо ;-), я собираю статистику с разных баз, и хотелось бы, чтобы большие числа были читабельны.
16 июл 14, 14:07    [16312397]     Ответить | Цитировать Сообщить модератору
 Re: Как вывести числа в формате?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8807
Присоединяюсь к мнению, дурная работа, если не требуется хранить данные в таком виде в базе.
16 июл 14, 14:07    [16312399]     Ответить | Цитировать Сообщить модератору
 Re: Как вывести числа в формате?  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Winnipuh,

я Вам - коротенькое выраженьице, А Вы мне - гигантскую страшную скалярную рекурсивную функцию?!
16 июл 14, 14:13    [16312432]     Ответить | Цитировать Сообщить модератору
 Re: Как вывести числа в формате?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
iap
Winnipuh,

я Вам - коротенькое выраженьице, А Вы мне - гигантскую страшную скалярную рекурсивную функцию?!


я тут ни при чем (ц)

нарыл, подправил...
Попробую выражение
16 июл 14, 14:18    [16312467]     Ответить | Цитировать Сообщить модератору
 Re: Как вывести числа в формате?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8807
Чудо-выражение возвращает '1' :)
16 июл 14, 14:21    [16312490]     Ответить | Цитировать Сообщить модератору
 Re: Как вывести числа в формате?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8807
Ах, имеется в виду select ... from ...!
16 июл 14, 14:23    [16312502]     Ответить | Цитировать Сообщить модератору
 Re: Как вывести числа в формате?  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Владислав Колосов,

на каком сервере? Winnipuh просил для SQL 2008
16 июл 14, 14:24    [16312513]     Ответить | Цитировать Сообщить модератору
 Re: Как вывести числа в формате?  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
iap
Владислав Колосов,

на каком сервере? Winnipuh просил для SQL 2008
Кстати, для ранних версий не прокатит, ибо CONVERT() не знал про стиль 1 для MONEY!
16 июл 14, 14:25    [16312519]     Ответить | Цитировать Сообщить модератору
 Re: Как вывести числа в формате?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
iap
iap
Владислав Колосов,

на каком сервере? Winnipuh просил для SQL 2008
Кстати, для ранних версий не прокатит, ибо CONVERT() не знал про стиль 1 для MONEY!


я пустил выражение на 2012 - тоже 1, ну хотя бы стабильность радует
16 июл 14, 14:29    [16312557]     Ответить | Цитировать Сообщить модератору
 Re: Как вывести числа в формате?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Winnipuh
iap
пропущено...
Кстати, для ранних версий не прокатит, ибо CONVERT() не знал про стиль 1 для MONEY!


я пустил выражение на 2012 - тоже 1, ну хотя бы стабильность радует


извините, был не прав. Все работает.
16 июл 14, 14:31    [16312578]     Ответить | Цитировать Сообщить модератору
 Re: Как вывести числа в формате?  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Winnipuh
я пустил выражение на 2012 - тоже 1, ну хотя бы стабильность радует

да ладно
select REPLACE(REVERSE(STUFF(REVERSE(CONVERT(VARCHAR,CAST(100200300400 AS MONEY),1)),1,3,'')),',',' ')
-----------------------------------------------------
100 200 300 400
16 июл 14, 14:32    [16312584]     Ответить | Цитировать Сообщить модератору
 Re: Как вывести числа в формате?  [new]
случайно заглянул
Guest
а функциия format не подойдет?
17 июл 14, 08:24    [16316142]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить