Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

T-SQL:Làm thế nào để Chọn Giá trị trong Danh sách Giá trị KHÔNG CÓ TRONG Bảng?

Đối với 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)  

Đối với các phiên bản trước, bạn có thể làm điều gì đó tương tự với bảng dẫn xuất UNION ALL -ing các hằng số.

/*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)

Hoặc nếu bạn chỉ muốn những cái không tồn tại (như ngụ ý của tiêu đề) thay vì tập kết quả chính xác được đưa ra trong câu hỏi, bạn có thể chỉ cần thực hiện điều này

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. Kiểm tra tình trạng máy chủ SQL chủ động, Phần 3:Cài đặt phiên bản và cơ sở dữ liệu

  2. Máy chủ SQL SHOWPLAN_TEXT

  3. Các thủ tục được lưu trữ trong SQL không hoàn tất khi được gọi từ Python

  4. Cách chèn giá trị vào cột IDENTITY trong SQL Server

  5. Trên cập nhật bảng, hãy kích hoạt một hành động trong mã .NET của tôi