You can use CASE
for each column after you have made a join:
SELECT
COALESCE(t1.MyName COLLATE DATABASE_DEFAULT, t2.MyName ) AS MyName
,CASE WHEN t2.MyLevel > t1.MyLevel THEN t2.MyDescr COLLATE DATABASE_DEFAULT ELSE t1.MyDescr END AS MyDescr
,CASE WHEN t2.MyLevel > t1.MyLevel THEN t2.MyLevel ELSE t1.MyLevel END AS MyLevel
,CASE WHEN t2.MyLevel > t1.MyLevel THEN t2.FromDB COLLATE DATABASE_DEFAULT ELSE t1.FromDB END AS FromDB
FROM TableOne t1
FULL JOIN TableTwo t2 ON t1.MyName = t2.MyName COLLATE DATABASE_DEFAULT
Edited for collation conflicts. I have used COLLATE DATABASE_DEFAULT
but you can also choose to use specific collation - ie COLLATE Danish_Norwegian_CI_AS
. You can use COLLATE on either side of operation.