По причинам, не зависящим от моего контроля, мне нужно присоединиться к двум таблицам, и мне нужны нулевые значения для соответствия. Лучший вариант, о котором я мог подумать, - выплюнуть UUID и использовать его в качестве моей сравнительной ценности, но кажется уродливым.
SELECT * FROM T1 JOIN T2 ON nvl(T1.SOMECOL,'f44087d5935dccbda23f71f3e9beb491') =
nvl(T2.SOMECOL,'f44087d5935dccbda23f71f3e9beb491')
Как я могу сделать лучше? Это касается Oracle, если это имеет значение, а контекст - это приложение, в котором пакет загружаемых пользователем данных должен сравниваться с пакетом существующих данных, чтобы увидеть, соответствуют ли какие-либо строки. Оглядываясь назад, мы должны были помешать любому из столбцов соединения в наборе данных от содержать нули, но мы этого не сделали, и теперь нам нужно жить с ним.
Изменить: Чтобы быть ясным, я не только обеспокоен нулями. Если столбцы не равны нулю, я хочу, чтобы они соответствовали их фактическим значениям.