我在一個定義爲十進制(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. 轉換VARCHAR到十進制
- 3. 將varchar轉換爲十進制將數字刪除
- 4. 將十進制存儲爲varchar轉換爲datetime
- 5. 將十進制轉換爲十六進制和十六進制
- 6. 將二進制轉換爲十進制
- 7. 將十進制轉換爲二進制
- 8. 將十六進制轉換爲二進制,然後轉換爲十進制
- 9. 將mysql類型從varchar轉換爲十進制
- 10. 將varchar轉換爲查詢中的十進制和比較值
- 11. 我如何將十六進制值的varchar轉換爲int?
- 12. 在SQL Server中將Varchar值轉換爲整數/十進制值
- 13. 將逗號分隔的varchar轉換爲十進制
- 14. 如何將十六進制VARCHAR轉換爲SQL Server中的VARBINARY
- 15. 將數據從varchar轉換爲十進制
- 16. SQL Server 2005:將varchar值'1.23E-4'轉換爲十進制失敗
- 17. 將十進制轉換爲十六進制/二進制
- 18. 將十六進制轉換爲二進制到十六進制?
- 19. 將八進制數轉換爲十進制和十六進制
- 20. 使用限制將十進制轉換爲十六進制
- 21. 十六進制轉換爲十進制電壓轉換
- 22. 十進制轉換爲十六進制的轉換(Java)的
- 23. 錯誤將varchar爲十進制
- 24. 如何將十六進制NSData轉換爲十進制數組?
- 25. 將2位十進制轉換爲十六進制
- 26. 在Visual C++中將十進制值轉換爲十六進制
- 27. 將十進制轉換爲十六進制值
- 28. 在Python中將十六進制值轉換爲十進制
- 29. 在程序集中將十進制轉換爲十六進制
- 30. 將十進制轉換爲特定格式的十進制數?
你爲什麼不開始顯示你到目前爲止? – 2011-04-06 19:55:22
您的數據的一個例子,特別是您希望它看起來像總是有幫助的。尼古拉斯包括一個右對齊的答案,因爲你沒有展示如何顯示結果(浪費時間?)。你的目標是儘可能得到最好的答案,而不是不鼓勵這些志願者解決方案。 – JeffO 2011-04-06 20:10:14