0
A
回答
0
因爲您投射的除數不是結果。你還沒有指定精度。
例如參見此:
SELECT 50/CAST(100 AS decimal(3))
,50/CAST(100 AS decimal(6,3))
,CAST (50/CAST(100 AS decimal(3)) AS decimal(3))
,CAST (50/CAST(100 AS decimal(3)) AS decimal(6,3))
Precision, Scale, and Length (Transact-SQL)
精度是在多個位數。比例是數字中小數點右側的 數字的數量。例如, 數123.45具有5位精度和2.
DECIMAL比例使用18的默認精度和規模3.
因此,當你情況DECIMAL(3)你得到一個DECIMAL(3,0)。然後,您將它用作除數,並且SQL Server按照其規則生成規則。
Operation Result precision Result scale
e1/e2 p1 - s1 + s2 + max(6, s1 + p2 + 1) max(6, s1 + p2 + 1)
+0
謝謝,卡爾。我通過投射除數得到了這一部分。但爲什麼查詢結果是.500000,而不是.5,.500,默認的18位數或其他? – user3516067
+0
太棒了!謝謝。解釋得很好。 – user3516067
相關問題
- 1. SQL Server十六進制數據類型
- 2. Sql server中十進制數據類型的問題過濾
- 3. 的SQL Server 2008+:模數和十進制/數字數據類型
- 4. 在sql server中定義十進制數據類型
- 5. MS SQL Server十進制數據類型向上舍入
- 6. SQL中的十進制數據類型mysql/phpmyadmin
- 7. 十進制數爲十六進制的轉換在SQL Server 2008
- 8. SQL Server 2008時間數據類型在時間上是十進制的需要
- 9. vb.net大於十進制數據類型
- 10. 在Java十六進制數據類型
- 11. C#,VB6和十進制數據類型
- 12. H2,Sql-Server,MySql中的二進制數據類型
- 13. 十進制類型
- 14. 十進制類型
- 15. 當使用LINQ to SQL時,錢與十進制數據類型
- 16. 試圖從SQL Server 2008中提取數據二進制類型
- 17. 在sql server中將十進制值拆分爲十進制數值
- 18. 更改數據表的數據類型使用十進制
- 19. C#十進制到SQL Server的錢
- 20. 得到十進制的SQL Server
- 21. 在SQL Server中劃分十進制類型導致不必要的尾隨零
- 22. 數據類型在java中表示一個十進制數字
- 23. Elixir中十進制數據類型的測試?
- 24. Visual Basic 6.0中的十進制數據類型
- 25. 將東西裝入SQL Server二進制數據類型
- 26. Visual Basic十進制類型
- 27. Zend_Db類型十進制
- 28. 適當的.Net數據類型爲十進制(20,0)
- 29. SQL Server 2008數據類型
- 30. Sql Server 2005數據類型
有什麼區別?看起來像** **相同和正確的值 –