我有一个小问题:
SELECT *
FROM ZGA_DASHBOARD_FINAL
full outer join A_SGA_Name_ID_Final ON cast(REFERENCE_KEY1 as integer) =A_SGA_Name_ID_Final.[PERSONID_EXT]
WHERE ISNUMERIC(REFERENCE_KEY1) = 1
对于我的输出,我遇到此错误:将varchar值“ CORRECT”转换为数据类型int时,转换失败。
,当我通过内部联接更改完全外部联接时,它会起作用 有人有同样的问题。 预先感谢
答案 0 :(得分:0)
您可以使用CTE首先限制ISNUMERIC返回true的记录:
; WITH NumericReference
AS (
SELECT *
FROM ZGA_DASHBOARD_FINAL
WHERE ISNUMERIC(REFERENCE_KEY1) = 1
)
SELECT *
FROM [NumericReference] nr
FULL OUTER JOIN A_SGA_Name_ID_Final af
ON CAST(nr.REFERENCE_KEY1 AS INTEGER) = af.[PERSONID_EXT]