2
我想在查询的where子句中使用CAST()函数。基本上我在TableA中有一个类型为Decimal(10,0)的FieldA,而TableB中的TypeB类型为CHAR,我想在Fields A和B相同的条件下加入两个表。在where子句中使用Cast()函数 - T-SQL
我已经尝试了简单
select FieldA , FieldB from tableA left join tableB
on cast(FieldB as decimal(10,0))= FieldA
但它返回一个错误的CAST子句中不承认
编辑,这是从法文翻译不好
字符时,正确的翻译似乎是
流延规范
(感谢亚历克斯·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)它是从一个非英语语言的翻译和2)你有它需要一个小数点的逗号反之亦然FieldB –
你可以在这里粘贴精确的错误按摩吗? (即使它不是英文)也包括所有可能存在的数字。 –
由于性能方面的原因,您的方法不具有可扩展性。最好有一个包含存储在数据库中的“CAST”值的附加列。 一般来说,尽量避免在'JOIN's和'WHERE'子句中使用函数。 – SchmitzIT