【发布时间】:2019-03-29 06:34:13
【问题描述】:
我需要使用包含文本数据和帐号的用户定义列 (UDF1) 将表连接到另一个帐号表 (LDACCT)。帐号应格式化为十进制 (16,0),但 UDF1 列中包含文本数据(以及帐号),因为 UDF1 还用于存放帐号以外的其他目的(不是我的设计)。我当前的加入不起作用:
left outer join dbo.tbl_Loan_Legal_Descriptions as ll2
on CAST(uf.UDF1 as decimal(16, 0)) = ll2.LDACCT
我得到了可怕的消息:Error converting data type varchar to numeric,我似乎无法修改连接来解决错误。任何建议将不胜感激。
【问题讨论】:
-
如果您必须在 JOIN 条件下使用 CAST,则表明您的数据库设计不佳。改为修复它!
-
怎么样:... on CAST(uf.UDF1 as varchar(255)) = cast(ll2.LDACCT as varchar(255)) ??
-
@jarlh 也许操作者没有这样做的权限
-
jarlh - 如果可以的话,我会的 - 正如 Lamak 所猜测的那样!让我试试 Eray 的想法 - 谢谢大家的意见!
-
Eray 的“翻转脚本”解决方案完美运行。谢谢!
标签: sql sql-server-2008 decimal varchar sqldatatypes