【问题标题】:T-SQL cannot convert varcchar column to a numeric datatypeT-SQL 无法将 varchar 列转换为数值数据类型
【发布时间】:2015-03-03 09:49:52
【问题描述】:

我有以下 T-SQL 语句:

select top 10 value1 from table1 where condition1 = 12345

结果:

5449.0              
228231.0            
0.0                 
3128.0              
6560.0              
4541.0              
2119.0              
0.0                 
0.0                 
4183.0              

value1 的数据类型 = "[char] (20) COLLATE Latin1_General_CS_AS NULL"

请注意,每个结果行都有 20 个字符,即“5449.0______________”用空格填充。

我想总结所有这些列。如何将这些值转换为可求和数据类型?

【问题讨论】:

标签: sql-server casting varchar collate


【解决方案1】:

使用强制转换或转换:

-- for demo
declare  @v char(20)
set @v = '228231.9            '
-- real magic
select cast(@v as real)

所以这是你的选择:

select cast(value1 as real) from table1 where condition1 = 12345
select sum(cast(value1 as real)) from table1 where condition1 = 12345

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-13
    • 2021-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多