什麼是存儲在SQL Server中的號碼最好的方式,這樣,如果我有很多像...存儲在SQL Server中逗號和句號(數據類型)的數量
192,234.35
它會被存儲爲這樣?
作爲數據類型的數字會有訣竅嗎?
什麼是存儲在SQL Server中的號碼最好的方式,這樣,如果我有很多像...存儲在SQL Server中逗號和句號(數據類型)的數量
192,234.35
它會被存儲爲這樣?
作爲數據類型的數字會有訣竅嗎?
數值數據不存儲爲文本。我更喜歡小數,但任何東西都比文本好。這是一個簡單的想法來考慮。
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 server中的值進行比較。 – BobSki