Вы перечислили несколько баз данных и нет конкретной версии ... В любом случае, вам нужно будет генерировать соответствующие SELECT
с - либо в Excel, как было предложено Lalit Kumar B, используя некоторые текстовый процессор или даже (частично) в вашей базе данных.
Для MySQL вы должны работать с инструкциями, которые будут использоваться в подзапросе, что приведет к «Т».
SELECT T.firstName, T.lastName FROM
(SELECT 'Afirst' firstName, 'Alast' lastName UNION ALL
SELECT 'Dfirst' firstName, 'Dlast') T
LEFT JOIN Users U
ON U.firstName = T.firstName
AND U.lastName = T.lastName
WHERE U.firstName IS NULL AND U.lastName IS NULL;
SQL Fiddle
В Oracle используется DUAL
для построения отчета:
SELECT T.firstName, T.lastName FROM
(SELECT 'Afirst' firstName, 'Alast' lastName FROM DUAL UNION ALL
SELECT 'Dfirst' firstName, 'Dlast' FROM DUAL) T
LEFT JOIN Users U
ON U.firstName = T.firstName
AND U.lastName = T.lastName
WHERE U.firstName IS NULL AND U.lastName IS NULL
;
и в более поздних версиях, у вас есть возможность фактор:
WITH
T (firstName, lastName) AS (
SELECT 'Afirst' firstName, 'Alast' lastName FROM DUAL UNION ALL
SELECT 'Dfirst' firstName, 'Dlast' FROM DUAL
)
SELECT T.firstName, T.lastName
FROM T
LEFT JOIN Users U
ON U.firstName = T.firstName
AND U.lastName = T.lastName
WHERE U.firstName IS NULL AND U.lastName IS NULL
;
который даже разрешить разбиение столбцов в базе данных (если у вас есть более двух или трех столбцов в Excel, чтобы сравнить с таблицей пользователей, вы, вероятно, использовать один из более сложных подходов CSV расщепления - если ваша версия разрешений Oracle):.
WITH
T (string) AS (
SELECT 'Afirst,Alast' FROM DUAL UNION ALL
SELECT 'Dfirst,Dlast' FROM DUAL
),
TUser (firstName, lastName) AS (
SELECT
SUBSTR(string, 1, INSTR(string, ',') - 1)
, SUBSTR(string, INSTR(string, ',') + 1, LENGTH(string))
FROM T
)
SELECT T.firstName, T.lastName
FROM TUser T
LEFT JOIN Users U
ON U.firstName = T.firstName
AND U.lastName = T.lastName
WHERE U.firstName IS NULL AND U.lastName IS NULL
;
SQL Fiddle
И если какая-то база данных не так релаксирована, как MySQL (не требует таблицы в SELECT
) и не имеет эквивалента для Oracle DUAL, вы можете создать такую таблицу с одним столбцом/одной строкой и продолжить.
Прокомментируйте, если и как требуется дополнительная настройка/дальнейшая информация.
Почему у вас есть ** несколько тегов DB **? –