解决方案可能适用于其中 dual 是单行单列表的 Oracle。您需要一张表,您可以在其中虚拟选择所需的值!
警告因为我无权访问 db 我从未在下面测试过查询。
SELECT tab_all.col_search, t.column1, t.column2
FROM
(
Select value1 AS col_search from dual
union all
Select value2 from dual
union all
Select value3 from dual
) tab_all left join table1 t
on col_search = t.column1
WHERE t.column1 is null;
我相信 sqlserver 相当于 Oracle 的 SELECT value1 FROM dual 是 SELECT value1 OR SELECT 'value1'。
所以试试
SELECT tab_all.col_search, t.column1, t.column2
FROM
(
Select value1 AS col_search
union all
Select value2 AS col_search
union all
Select value3 AS col_search
) tab_all left join table1 t
on col_search = t.column1
WHERE t.column1 is null;
由于我不是 sqlserver 人,可能是 RichardTheKiwi 版本的 Oracle 的 select from dual 更好。