Для TSL вы можете попробовать использовать AND <clause_search_condition>
MERGE
[ TOP ( expression ) [ PERCENT ] ]
[ INTO ] <target_table> [ WITH ( <merge_hint> ) ] [ [ AS ] table_alias ]
USING <table_source>
ON <merge_search_condition>
[ WHEN MATCHED [ AND <clause_search_condition> ] <==
THEN <merge_matched> ] [ ...n ]
<merge_matched>::=
{ UPDATE SET <set_clause> | DELETE }
поскольку у вас может быть несколько WHEN MATCHED с различными дополнительными условиями после AND, вы можете создавать несколько обновлений с помощью одного оператора слияния.
WHEN MATCHED AND row_ind ='Y' THEN
UPDATE SET TARGET.NodeId = SOURCE.StartNodeId,
TARGET.LinkId = SOURCE.Id
WHEN MATCHED AND row_ind ='N' THEN
UPDATE SET TARGET.NodeId = SOURCE.EndNodeId,
TARGET.LinkId = SOURCE.Id ;
в oracle вы не можете сделать это, так как разрешен только один merge_update_clause
MERGE не поддерживается MySQL