By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE real_table (string1, string4) AS
SELECT 'asdf', 42 FROM DUAL;
1 rows affected
SELECT DISTINCT
anon_table.string1,
anon_table.string2,
anon_table.string3,
rt.string4
FROM real_table rt
RIGHT OUTER JOIN (
SELECT 'asdf' AS string1, 'asdf' AS string2, 'asdf' AS string3 FROM DUAL
UNION ALL
SELECT 'ghjk','ghjk','ghjk' FROM DUAL
) anon_table
ON rt.string1 = anon_table.string1;
STRING1 | STRING2 | STRING3 | STRING4 |
---|---|---|---|
asdf | asdf | asdf | 42 |
ghjk | ghjk | ghjk | null |
WITH anon_table (string1, string2, string3) AS (
SELECT 'asdf', 'asdf', 'asdf' FROM DUAL UNION ALL
SELECT 'ghjk','ghjk','ghjk' FROM DUAL
)
SELECT DISTINCT
anon_table.string1,
anon_table.string2,
anon_table.string3,
rt.string4
FROM real_table rt
RIGHT OUTER JOIN anon_table
ON rt.string1 = anon_table.string1;
STRING1 | STRING2 | STRING3 | STRING4 |
---|---|---|---|
asdf | asdf | asdf | 42 |
ghjk | ghjk | ghjk | null |
CREATE TYPE string_triplet AS OBJECT(
string1 VARCHAR2(20),
string2 VARCHAR2(20),
string3 VARCHAR2(20)
);
CREATE TYPE string_triplet_list AS TABLE OF string_triplet;
SELECT DISTINCT
anon_table.string1,
anon_table.string2,
anon_table.string3,
rt.string4
FROM real_table rt
RIGHT OUTER JOIN TABLE(
string_triplet_list(
string_triplet('asdf', 'asdf', 'asdf'),
string_triplet('ghjk', 'ghjk', 'ghjk')
)
) anon_table
ON rt.string1 = anon_table.string1;
STRING1 | STRING2 | STRING3 | STRING4 |
---|---|---|---|
asdf | asdf | asdf | 42 |
ghjk | ghjk | ghjk | null |