Sql server Where子句测试Where all必须匹配

Sql server Where子句测试Where all必须匹配,sql-server,where-clause,Sql Server,Where Clause,我有一个表,其中包含字段student_number和一个completed标志,该标志为completed或non completed 我想写一个where子句,它允许我检查3个学生编号,并检查他们是否都已在其已完成字段中完成,但所有必须匹配 你知道我该怎么做吗?也许你想要这样的东西: where STUDENT.NUMBER in (34646, 57858, 48482) and COMPLETED = 'COMPLETED' 根据您的评论请提供一些样本数据,并向我们展示您的尝试目的?假

我有一个表,其中包含字段student_number和一个completed标志,该标志为completed或non completed

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


你知道我该怎么做吗?

也许你想要这样的东西:

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

根据您的评论

请提供一些样本数据,并向我们展示您的尝试目的?假设我选择了学生编号34646、57858和48482。我试过在学生号为34646或57858或48482,完成号为“已完成”的地方做。但这并不意味着所有的学生都必须完成才能得到真实的陈述,那么这是否意味着所有3个学生的数字都完成了呢?我将使用一个case函数,它基本上说,当所有3个都完成时,做这个,否则不完成,在case函数中,这将是:case,当STUDENT.NUMBER在34646578482和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)