У меня есть оператор SQL, который включает три таблицы базы данных.Я сравниваю некоторые идентификаторы и ОПИСАНИЯ, и теперь мне нужно сравнить результаты FIRSTNAME, MIDDLENAME и SURNAME.
SELECT UGOVARATELJ_OSIGURANJA AS ULJEZ FROM INS_RAZNO.TEST_DOWNJONES
WHERE UGOVARATELJ_OSIGURANJA IN
(SELECT FIRSTNAME||' '||MIDDLENAME||' '||SURNAME
AS IME_PREZIME
FROM (SELECT FIRSTNAME, MIDDLENAME, SURNAME
FROM INS_RAZNO.AML_CTF
WHERE ID IN (SELECT ID FROM INS_RAZNO.AML_CTF_DESCRIPTIONS
WHERE DESCRIPTION1='1' OR DESCRIPTION1='2')));
Переменная UGOVARATELJ_OSIGURANJA
фактически является именем клиента в форме NAME MIDDNAME SURNAME с пробелами между каждой частью имени.Моя идея состояла в том, чтобы удалить эти пробелы с помощью REMOVE()
, но когда я сравниваю после этого со второй таблицей, нет правильного результата.
Я попытался проверить свое утверждение следующим образом: ЭТО ТОЛЬКО ЗАЯВЛЕНИЕ НА ТЕСТ *
SELECT REPLACE(UGOVARATELJ_OSIGURANJA, ' ','') AS ULJEZ FROM
INS_RAZNO.TEST_DOWNJONES WHERE UGOVARATELJ_OSIGURANJA LIKE '%IVAN F%'
Обратите внимание, что я должен был установить пробел между именем и отчеством LIKE %IVAN F%
, и правильный путь был бы% IVANF%.
Есть идеи, как решить эту проблему?Заранее спасибо
РЕДАКТИРОВАТЬ: я делаю это замены (обрезка), потому что некоторые из peops в моих списках не имеют MIDDLENAME
EDIT: это рабочий оператор для имен, которые имеют MIDDLENAME.Оператор не работает должным образом, когда у кого-то нет MIDDLENAME из-за слишком большого пробела.