Where子句测试所有必须匹配的地方

Where clause testing where all must match

我有一个 table,其中包含字段 student_number 和一个已完成或未完成的完成标志。

我想写一个 where 子句,它允许我检查 select 是否有 3 个学号,并检查他们是否都已在已完成的字段中完成,但是都必须匹配。

知道我是怎么做到的吗?

可能你想要这样的东西:

where STUDENT.NUMBER in (34646, 57858, 48482) and COMPLETED = 'COMPLETED'

(根据您的评论)

    DROP TABLE T;
    CREATE TABLE T (ID INT, COMPLETED VARCHAR(20))
    INSERT INTO T VALUES
    (34646, 'COMPLETD'),(57858,'COMPLETeD'),(48482,'COMPLETED')

    SELECT case when s.sta > 0 then 'NotAllCompleted'
            else 'AllCompleted'
            end
     FROM   
    (
    SELECT SUM(CASE WHEN COMPLETED <> 'COMPLETED' AND ID IN(34646,57858,48482) THEN 1 ELSE 0 END) sta 
    FROM T
    ) S

---------------
NotAllCompleted

(1 rows affected)

truncate table t
INSERT INTO T VALUES
(34646, 'COMPLETeD'),(57858,'COMPLETeD'),(48482,'COMPLETED')
    SELECT case when s.sta > 0 then 'NotAllCompleted'
            else 'AllCompleted'
            end
     FROM   
    (
    SELECT SUM(CASE WHEN COMPLETED <> 'COMPLETED' AND ID IN(34646,57858,48482) THEN 1 ELSE 0 END) sta 
    FROM T
    ) S
---------------
AllCompleted

(1 rows affected)