Что такое лучший способ сохранить номер в SQL SERVER, так что если у меня есть ряд как ...Сохранение номера с запятыми и периодов в SQL сервере (тип данных)
192,234.35
Он будет храниться как таковой?
Будет ли числовой, как DataType, трюк?
Что такое лучший способ сохранить номер в SQL SERVER, так что если у меня есть ряд как ...Сохранение номера с запятыми и периодов в SQL сервере (тип данных)
192,234.35
Он будет храниться как таковой?
Будет ли числовой, как DataType, трюк?
Не хранить числовые данные в виде текста. Я предпочитаю десятичную, но что-то почти лучше, чем текст. Вот простую идею рассмотреть.
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
сохранил его как числовое (18,2), похоже, выполняет работу – BobSki
Я предлагаю хранить его как десятичную.
В SQL Server 2012+ мы имеем функцию форматирования, который может быть использован для форматирования с разделителя
FORMAT(@d,'#,0.0000')
В предыдущей версии можно взять обращение к некоторой пользовательской функции
Рекомендуемый способ будет для хранения номера без запятых в качестве типа DECIMAL (при условии, что это вопрос, 192,234,35 - это один номер) и для отображения его пользователю просто добавьте запятые, чтобы сделать число читаемым.
Однако, вы можете сохранить его как VARCHAR, если вы не собираетесь делать какие-либо математические операции на нем (например, в среднем, сумма и т.д.)
вы не должны беспокоиться о сохранении номера с разделителем тысяч, которые должны быть только для отображения данных – Lamak
Пожалуйста, различать хранение данных и их отображение. Вы можете сохранить номер как 192234.35 (числовой тип). И вы можете отображать их по своему усмотрению. – DVT
@GurV Хорошо, я беру значение из таблицы Excel и сохраняю его как строку и хочу иметь возможность сравнить его со значением в sql-сервере. – BobSki