SELECT DISTINCT ( SELECT 'm' FROM DUMMY ) AS field1, CONCAT( table2."col_varchar_nokey", table1."col_varchar_nokey" ) AS field2 FROM ( C AS table1 RIGHT JOIN C AS table2 ON (table2."col_int_key" = table1."pk" ) ) WHERE ( EXISTS ( SELECT SUBQUERY2_t1."pk" AS SUBQUERY2_field1 FROM ( C AS SUBQUERY2_t1 LEFT OUTER JOIN C AS SUBQUERY2_t2 ON (SUBQUERY2_t2."col_varchar_nokey" = SUBQUERY2_t1."col_varchar_key" ) ) WHERE SUBQUERY2_t1."col_varchar_key" <= table2."col_varchar_nokey" ) ) OR table2."col_varchar_key" > table2."col_varchar_key" ORDER BY field2 /*+JavaDB:Postgres: NULLS FIRST */, field1 /*+JavaDB:Postgres: NULLS FIRST */, field2 /*+JavaDB:Postgres: NULLS FIRST */;