简体   繁体   English

是否有SQL服务器的另一种解决方案

[英]Is there another solution for SQL server

I have a small problem : 我有一个小问题:

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 

For my output I have this error : Conversion failed when converting the varchar value 'CORRECT' to data type int. 对于我的输出,我有这样的错误:将varchar值'CORRECT'转换为数据类型int时转换失败。

and when I change full outer join by Inner join it works Someone had the same problem.. Thanks in advance 当我通过内部联接更改完全外部联接时,它可以工作有人有同样的问题..提前感谢

You can use a CTE to first limit the records where the ISNUMERIC returns true: 您可以使用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]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM