Привет Я обнаружил множество потоков о соединении двух столбцов в двух таблицах, но не там, где используется столбец, созданный подстрокой на одной стороне соединения, в ASE.Это роль данных о назначении пользователя, и она считывается из исходной системы с дополнительными данными, которые мне нужно вычесть из начала поля roleAssignments
, а затем добавить префикс PRIV:ROLE:REPNAME:
, чтобы иметь возможность совпадать с тем, что у меня есть вбаза данных IdM.
В настоящий момент у меня есть SQL:
select
distinct(l.mcthismskeyvalue) as logonuid,
l.mcothermskeyvalue,
FROM idmv_link_ext l
left outer join
roleAssign s on l.mcthismskeyvalue = 'PRIV:ROLE:REPNAME' || ':' || substring(s.roleassignments,43,30) as roleAssignments2
where l.mcothermskeyvalue like 'PRIV:ROLE:REPNAME:%'
and l.mcthisocname='MX_PERSON'
and l.mcthismskeyvalue = 'TEST_MU1';
Конечный результат, который я ищу, заключается в том, что я могу видеть результаты, которые находятся на roleAssign
, а не на idmv_link_ext
, затем запустите в обратном порядке, чтобы увидеть результаты, которые находятся в idmv_link_ext
, а не в roleAssign
.В Oracle это было возможно с помощью оператора MINUS
, но эта же команда не работает для меня в ASE.Также посмотрел на where not exists
, но не могу получить синтаксис прямо здесь:
select l.mcthismskeyvalue as logonuid, l.mcothermskeyvalue as roleAssignments
FROM idmv_link_ext l where mcothermskeyvalue like 'PRIV:ROLE:REPNAME%' and mcthisocname='MX_PERSON'
and l.mcthismskeyvalue = 'TEST_MU1'
where (not exists
(select s.refid as logonuid, 'PRIV:ROLE:REPNAME' || ':' || substring(s.roleassignments,43,30) as roleAssignments
FROM roleAssign s
where s.refid = 'TEST_MU1'))
;
Это рабочий синтаксис Oracle с использованием MINUS, для справки:
select mcthismskeyvalue as logonuid,
* substring(mcothermskeyvalue,11,60) as roleassignments
* FROM idmv_link_ext where mcothermskeyvalue like 'PRIV:ROLE:REPNAME%' and mcthisocname='MX_PERSON'
minus
* select refid as logonuid, 'REPNAME' || ':' || substring(roleassignments,43,30) as roleAssignments
* FROM roleAssign
Я настроил свойASE запрашивает, чтобы устранить необходимость в подстроке с обеих сторон, чтобы упростить.
Большое спасибо.