Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

T-SQL:Jak wybrać wartości z listy wartości, których NIE MA W tabeli?

Dla SQL Server 2008

SELECT email,
       CASE
         WHEN EXISTS(SELECT *
                     FROM   Users U
                     WHERE  E.email = U.email) THEN 'Exist'
         ELSE 'Not Exist'
       END AS [Status]
FROM   (VALUES('email1'),
              ('email2'),
              ('email3'),
              ('email4')) E(email)  

W poprzednich wersjach możesz zrobić coś podobnego z tabelą pochodną UNION ALL -ing stałych.

/*The SELECT list is the same as previously*/
FROM (
SELECT 'email1' UNION ALL
SELECT 'email2' UNION ALL
SELECT 'email3' UNION ALL
SELECT 'email4'
)  E(email)

Lub jeśli potrzebujesz tylko tych nieistniejących (jak sugeruje tytuł), a nie dokładnego zestawu wyników podanego w pytaniu, możesz po prostu to zrobić

SELECT email
FROM   (VALUES('email1'),
              ('email2'),
              ('email3'),
              ('email4')) E(email)  
EXCEPT
SELECT email
FROM Users


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. „Określone dane wejściowe nie reprezentują prawidłowego wystąpienia geograficznego” podczas korzystania z SqlGeographyBuilder

  2. Rozwiązywanie problemów podczas pracy z datą i godziną w SQL Server

  3. Jak przekonwertować nagłówek kolumny i jego wartość na wiersz w sql?

  4. SPRAWDŹ OGRANICZENIE na wielu kolumnach

  5. jak wpisać ip w zapytaniu linked server