消息8114,级别16,状态5,行3错误将数据类型varchar转换为float

时间:2017-08-30 15:30:27

标签: sql-server tsqlt

我正在尝试应用where子句,我的脚本就像

set ansi_nulls off

select
    Name, Count(Distinct [Document Name])
from 
    dbo.timeless
where 
    origin in ('2', 'I', 'E')
    and [svs check] IN ('0', '.', 'NO', 'OK', '#N/A')

然后我收到错误

  

Msg 8114,Level 16,State 5,Line 3
  将数据类型varchar转换为float

时出错

当我评论[svs check]时,一切都很顺利。问题出在[svs check]。请帮助。

1 个答案:

答案 0 :(得分:0)

我猜测dbo.timeless.svscheck的类型为float,您无法将其与字符串文字进行比较。

我建议首先使用CAST(svs as VARCHAR(10))将其转换为varchar,但我怀疑你的where子句是否可以正常浮动,因为你正在对字符串文字进行检查。