Целочисленное форматирование SQL Server - PullRequest
0 голосов
/ 25 августа 2009

У меня есть хранимая процедура, которая запрашивает некоторые данные и отправляет их по электронной почте, я хотел бы изменить процедуру, чтобы любые числа в тысячах отображались с запятыми, например, 1000. Я думаю, что лучший способ сделать это в SQL - это преобразовать его в строку и добавить запятую?

Спасибо

Ответы [ 3 ]

2 голосов
/ 25 августа 2009

Вот относительно чистый ответ. Конвертировать в деньги (без потери типа данных). Затем преобразуйте в varchar со стилем 1 (он использует запятые), а затем удалите .00 с конца, так как он идет с типом данных money.

select REPLACE(CONVERT(VARCHAR, CONVERT(MONEY, 1234), 1), '.00', '')

Это тонкая линия, чтобы выяснить, сколько операций со строками перед выполнением встроенной функции, но это должно быть довольно быстрое преобразование.

Спасибо, Eric

1 голос
/ 25 августа 2009

Правильно. Целое число не имеет форматирования по определению типа данных.

Таким образом, вы должны либо преобразовать значение в строку (например, varchar), либо, как это более распространенная практика, иметь уровень представления для обработки форматирования значения.

0 голосов
/ 25 августа 2009

Если вы застряли с использованием SQL Server в качестве сообщения электронной почты (нет другого приложения для создания отчетов),

SELECT CONVERT(varchar(24),CONVERT(money,CAST( 12345678 AS VarChar(24))),1)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...