在已設置爲nvarchar但僅包含數字的字段的SQL查詢中,是否可以使用SUM函數?在nvarchar字段上使用SUM
3
A
回答
12
這可以通過鑄造:
SELECT SUM(CAST(NVarcharCol as int))
然而,這將拋出一個例外是1個或更多的記錄不能CAST
到int
。
如果您的列只有數值,我建議將數據類型更改爲int以保存未來的問題。
如果您不能更改數據類型,那麼下面WHERE
條款將阻止拋出的異常:
WHERE ISNUMERIC([NVarcharCol])=1
3
select sum (cast (myFiled as int)) from myTable
1
你必須將varchar轉換爲數字型使用SUM之前它會導致錯誤:
Msg 8117,Level 16,State 1,Line 6 對於sum運算符,操作數數據類型varchar無效。
如果它只包含數字數據 - 那麼在varchar中存儲數據的意義何在?
+1
這是一個歷史數據庫,我已經選擇並需要運行查詢,數據類型是在幾年前建立的。 – 2012-01-09 12:29:53
1
你需要鑄造,試試這個
SUM(COALESCE(CoumnName, 0))
0
使用SUM(COALESCE(CoumnName,0)) 我建議,你應該改變的數據類型number.Its好的做法。
0
如果你想添加兩個nvarchar列。 列TestTotal(nvarchar的),列TestFailed(nvarchar的),列TestPassed(NVARCHAR)
UPDATE [your_db].[dbo].[your_table]
SET your_table.TestTotal = Convert(nvarchar, cast (your_table.TestFailed as int) + cast (your_table.TestPassed as int))
WHERE TestTotal='your_condition';
相關問題
- 1. 在存在的字段上使用$ sum將返回值0
- 2. SQL Parse NVARCHAR字段
- 3. SQL Server - nvarchar字段上的索引
- 4. cakephp sum()在單個字段
- 5. SUM分組字段
- 6. 正在搜索nvarchar(max)字段
- 7. MySQL SUM如果字段b =字段a
- 8. nvarchar字段中的不可見字符?
- 9. SQL SUM()函數字段
- 10. Cakephp SUM相關字段
- 11. SQL SUM計算字段
- 12. SUM字段不加總和
- 13. Mongoose SUM + $ cond +數組字段
- 14. 按Sum字段排序
- 15. SUM在mysql中的更多字段
- 16. 對非索引字段使用nvarchar(max)的影響
- 17. 如何使用Mybatis將Oracle字段(nvarchar,nclob)更新到中文
- 18. 上FLOAT數據使用SUM
- 19. 如何在編輯現有字段時更新「sum」字段?
- 20. LINQ實體從一個nvarchar字段
- 21. Linq2Sql沒有更新NVarchar(Max)字段?
- 22. 將nVarchar值插入到Bigint字段
- 23. MS SQL nvarchar id字段包含空格
- 24. T-SQL - nvarchar的文本字段
- 25. SUM字符串字段TQuery - Delphi v7
- 26. 使用SUM和COUNT字段創建計算字段數據透視表
- 27. 如何在CoreData上使用@sum
- 28. nvarchar上Guid字段的優點包含Guid?
- 29. 如何在打字稿上使用linq js sum和average?
- 30. 在nvarchar(max)字段中插入MSSQL超過8000個字符
更改列類型是正確的類型,你不會有這樣的問題。 – Oded 2012-01-09 12:10:12
有時(例如,如果您正在使用第三方架構),這種更改並非總是可行。 – 2012-01-09 12:15:10
@Oded - 我希望我可以downvote您的評論。你正在假設關於OP的很多事情。他可能無法控制數據庫。可能有其他推理,爲什麼列是nvarchar(就像讀取數據庫的某些API只能讀取文本列或類似的東西)。看不起提問者的無益評論不是SO精神。 – data 2014-06-17 09:27:26