我在一個定義爲十進制(8,3)的表中有一個小數列。我想在Select
聲明中包含此列,將其轉換爲Varchar
並僅顯示兩位小數。我似乎無法找到正確的選項組合,因爲我嘗試的所有東西都會產生三位小數。將十進制轉換爲Varchar
回答
這裏有一種方法:
create table #work
(
something decimal(8,3) not null
)
insert #work values (0)
insert #work values (12345.6789)
insert #work values (3.1415926)
insert #work values (45)
insert #work values (9876.123456)
insert #work values (-12.5678)
select convert(varchar,convert(decimal(8,2),something))
from #work
如果你想右對齊,這樣的事情應該做你:
select str(something,8,2) from #work
切勿將小數點插入'STR()'函數。它會將小數轉換爲浮點數,並且可能會出現時髦的舍入差異。 – 2011-04-06 20:02:14
當要求將其舍入到小數點後兩位時極不可能,但要採取措施。 – 2011-04-06 20:36:02
我認爲CAST(ROUND(yourColumn,2) as varchar)
應該做的工作。
但是,您爲什麼要在T-SQL中執行這種表示格式?
嘖嘖,謝謝,我從來沒有想到過!當然我嘗試過,我仍然得到3位小數。 – Hosea146 2011-04-06 19:56:32
@ Hosea146寫下我的第一個答案,但沒有正確地閱讀你的問題。 – 2011-04-06 19:57:49
希望這將幫助你
Cast(columnName as Numeric(10,2))
or
Cast(@s as decimal(10,2))
我我不明白爲什麼你想投射到varchar?。如果你投射到varchar再次轉換回decimail爲two
小數點
您可能需要轉換decimal
到money
(或decimal(8,2)
)來獲得,準確的格式。該convert
方法可以控制的格式類型,第三個參數:
convert(varchar, cast(price as money)) 12345.67
convert(varchar, cast(price as money), 0) 12345.67
convert(varchar, cast(price as money), 1) 12,345.67
希望這會有所幫助。
DECLARE @emp_cond nvarchar(Max) =' ',@LOCATION_ID NUMERIC(18,0)
[email protected]_ID=10110000000
IF CAST(@LOCATION_ID AS VARCHAR(18))<>' '
BEGIN
SELECT @emp_cond= @emp_cond + N' AND
CM.STATIC_EMP_INFO.EMP_ID = ' ' '+ CAST(@LOCATION_ID AS VARCHAR(18)) +' ' ' '
END
print @emp_cond
EXEC(@emp_cond)
- 1. SQL - 將VARCHAR轉換爲十進制
- 2. 將十進制轉換爲十六進制和十六進制
- 3. 將二進制轉換爲十進制
- 4. 將十進制轉換爲二進制
- 5. 將十六進制轉換爲二進制,然後轉換爲十進制
- 6. SQL Server 2005:將varchar值'1.23E-4'轉換爲十進制失敗
- 7. 在SQL Server中將Varchar值轉換爲整數/十進制值
- 8. 我如何將十六進制值的varchar轉換爲int?
- 9. 將mysql類型從varchar轉換爲十進制
- 10. 如何將十六進制VARCHAR轉換爲SQL Server中的VARBINARY
- 11. 使用限制將十進制轉換爲十六進制
- 12. 十進制轉換爲十六進制的轉換(Java)的
- 13. 錯誤將varchar爲十進制
- 14. 將4字節十六進制轉換爲十進制值
- 15. Python將十進制轉換爲十六進制
- 16. 將十六進制轉換爲十進制(Lat/Lon)?
- 17. VB.Net - 將多字節十六進制值轉換爲十進制
- 18. 在Swift中將十六進制轉換爲十進制
- 19. 在Lua 4中將十進制轉換爲十六進制?
- 20. 如何將十六進制字符串轉換爲十進制?
- 21. 將十六進制數轉換爲十進制格式
- 22. 用Erlang將十進制轉換爲十六進制?
- 23. 將十進制值轉換爲32位浮點十六進制
- 24. 將十六進制轉換爲十進制在swift中
- 25. 將十進制轉換爲十進制字符
- 26. 將十六進制從套接字轉換爲十進制
- 27. Perl 5.6.1與Perl 5.14 - 將十進制轉換爲十六進制
- 28. 將字符串轉換爲十六進制到十六進制
- 29. 將十進制(18,8)轉換爲另一列十進制(18,18)
- 30. 如何在bash中將十進制轉換爲十六進制?
你爲什麼不開始顯示你到目前爲止? – 2011-04-06 19:55:22
您的數據的一個例子,特別是您希望它看起來像總是有幫助的。尼古拉斯包括一個右對齊的答案,因爲你沒有展示如何顯示結果(浪費時間?)。你的目標是儘可能得到最好的答案,而不是不鼓勵這些志願者解決方案。 – JeffO 2011-04-06 20:10:14