DatabaseA - TABLEA - FieldA VARCHAR2
DatabaseB - TableB - FieldB NUMBER
[DBLink создал]Oracle Database Link + внутреннее соединение + to_number Query
SELECT *
FROM [email protected] b
INNER JOIN TableA a
ON b.FieldB = a.FieldA
Есть 2 осложнения.
1. FieldA - VARCHAR2
, но FieldB - NUMBER
.
2. FieldA содержит -
и FieldB содержит 0
.
Более подробную информацию о полях
FieldA: VARCHAR2(15)
, NOT NULL
проба не дорожит
-
Нет, не числовые значения, кроме -
FieldB: NUMBER(5,0)
Примеры значений
0 настроить
Нет нечисловых значений
То, что я пытаюсь сделать, это игнорировать строки, если FieldA = '-' OR FieldB = 0, в противном случае сравнение FieldA с FieldB.
SELECT *
FROM [email protected] b
JOIN TableA a
ON to_char(b.FieldB) = a.FieldA
Я получаю следующее сообщение об ошибке:
SQL Error: 17410, SQLState: 08000
No more data to read from socket.
Мне непонятно, что вы имеете в виду с значениями NULL. 'TO_NUMBER (NULL)' возвращает 'NULL', поэтому каким образом необходимость преобразования значений конфликтует с обработкой NULL? Возможно, это поможет, если вы предоставите образцы ввода, образец запроса, фактический результат и ожидаемый результат ... –
Я хотел бы игнорировать значения NULL, удалить их из набора результатов. – wervdon
Повторяя то, что вы написали в вопросе, не отвечает на мой конкретный вопрос и не дает требуемого общего разъяснения. Если по какой-то причине вы не можете или не будете предоставлять образец ввода, запрос, который вы пробовали, фактические результаты и то, как они отличаются от ожиданий ... тогда вам нужно найти другой способ сделать ваш запрос ясным. Повторение не так, если вы хотите моей помощи; но, возможно, кто-то другой - лучший читатель. –