2017-02-08 14 views
0

Что такое лучший способ сохранить номер в SQL SERVER, так что если у меня есть ряд как ...Сохранение номера с запятыми и периодов в SQL сервере (тип данных)

192,234.35

Он будет храниться как таковой?

Будет ли числовой, как DataType, трюк?

+1

вы не должны беспокоиться о сохранении номера с разделителем тысяч, которые должны быть только для отображения данных – Lamak

+0

Пожалуйста, различать хранение данных и их отображение. Вы можете сохранить номер как 192234.35 (числовой тип). И вы можете отображать их по своему усмотрению. – DVT

+0

@GurV Хорошо, я беру значение из таблицы Excel и сохраняю его как строку и хочу иметь возможность сравнить его со значением в sql-сервере. – BobSki

ответ

2

Не хранить числовые данные в виде текста. Я предпочитаю десятичную, но что-то почти лучше, чем текст. Вот простую идею рассмотреть.

declare @someDecimal decimal (8,2) = 192234.35 
declare @someText varchar(16) = '192,234.35' 

--here's how you would have to compare your text to an actual number 
select 'True' where @someDecimal = convert(decimal(8,2),replace(@someText,',','')) 

--then if you wanted to do any math on it, you would also have to convert it. 
select convert(decimal(8,2),replace(@someText,',','')) * 2 
--versus just 
select @someDecimal * 2 

--If you want to display it, use format... 
select FORMAT(@someDecimal,'#,0.0000') 

Закажите ваши данные, где вы найдете большие проблемы, так как это делается персонажем по персонажам. Опять же, вот почему вы не храните его как текст.

declare @tableOfText table (d varchar(16)) 
insert into @tableOfText (d) 
values 
('001'), 
('010'), 
('10'), 
('110'), 
('011'), 
('1'), 
('12') 

select * from @tableOfText order by d desc 
+0

сохранил его как числовое (18,2), похоже, выполняет работу – BobSki

1

Я предлагаю хранить его как десятичную.

В SQL Server 2012+ мы имеем функцию форматирования, который может быть использован для форматирования с разделителя

FORMAT(@d,'#,0.0000') 

В предыдущей версии можно взять обращение к некоторой пользовательской функции

2

Рекомендуемый способ будет для хранения номера без запятых в качестве типа DECIMAL (при условии, что это вопрос, 192,234,35 - это один номер) и для отображения его пользователю просто добавьте запятые, чтобы сделать число читаемым.

Однако, вы можете сохранить его как VARCHAR, если вы не собираетесь делать какие-либо математические операции на нем (например, в среднем, сумма и т.д.)

 Смежные вопросы

  • Нет связанных вопросов^_^