Есть ли другое решение для сервера SQL - PullRequest
0 голосов
/ 28 марта 2019

У меня небольшая проблема:

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.

и когда я меняю полное внешнее соединение на Внутреннее, оно работает У кого-то была такая же проблема .. Заранее спасибо

1 Ответ

0 голосов
/ 28 марта 2019

Вы можете использовать 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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...