【发布时间】:2017-07-31 13:12:01
【问题描述】:
我有下一个问题
SELECT *
FROM Assoc AS cc
JOIN Orders AS o ON cc.Referencecode = o.Orderid
我收到了这个错误: 将数据类型 varchar 转换为数值时出错。
我通过添加这个子句解决了......
WHERE ISNUMERIC (cc.Referencecode) = 1
我的问题是……这个解决方案可以吗? (我无权更改数据类型……)还是应该在联接本身中进行转换?
ps: ReferenceCode 是 varchar(50) OrderId 是十进制 (18,0)
【问题讨论】:
-
看业务需求
-
通常最好(性能方面)在连接本身中执行此操作。另外值得一提的是,这样您就可以从结果集中排除没有数字参考代码的记录。不确定这是否是您的意图?
-
IsNumeric()是出了名的problematic。 -
@Chicago ,有没有对你有用的答案
标签: sql-server tsql