在where子句--T-SQL中使用Cast()函数

时间:2012-10-29 18:11:58

标签: sql tsql casting decimal

我正在尝试在查询的where子句中使用CAST()函数。基本上我在TableA中有一个FieldA,它被输入为Decimal(10,0),而TableB中的FieldB被输入为CHAR,我想在字段A和B相同的条件下连接这两个表。 / p>

我尝试过一个简单的

select FieldA , FieldB from tableA left join tableB 
on cast(FieldB as decimal(10,0))= FieldA

但它返回错误

  

未在CAST条款中承认的字符

编辑这是法语翻译不好,正确的翻译似乎是

  

投射规范的无效字符值

(thx Alex K)

然后我尝试做类似

的事情
select tableA.fieldA, tableC.fieldC
from tableA left join
(select cast(fieldB as decimal(10,0)) fieldC from tableB)
as tableC on fieldC=fieldA

但我有同样的错误被退回

我真的不是SQL的专家,基本上只是在这里和那里使用一些SELECT,试图寻找类似的问题,但看不到与我的问题相符的答案。

有人有想法吗?谢谢

1 个答案:

答案 0 :(得分:0)

好的,多亏了我的理解,我试图以十进制方式投射的一些字段不是数字 - 我只是将其作为字符串将十进制字段转换为字符,这样做。

感谢您的帮助