Использование NVL с оператором <> в Redshift - PullRequest
0 голосов
/ 09 мая 2020

Я присоединяюсь к 2 таблице и сравниваю, если столбцы не совпадают, как указано ниже:

select count(*) from
table1 t1 inner join table2 on (t1.key = t2.key and ( nvl(t1.address1,'X') <> nvl(t2.address1,'X') or nvl(t1.address2,'X') <> nvl(t2.address2,'X') );

типы даты

  • t1.address1 - varchar200
  • t2.address1 - varchar250
  • t1.address2 - varchar100
  • t2.address2 - varchar250

ошибка:

SQL Error [500310] [42883]: [Amazon](500310) Invalid operation: operator does not exist: character varying <> record;

Я пробовал с nvl (t1.address1 :: varchar, 'X') <> nvl (t2.address1 :: varchar, 'X'), потому что это работало для аналогичных сравнений для нескольких столбцов, но не для столбцов рабочих адресов.

...