sql - 如何在同一个表中组合多个查询

标签 sql sql-server tsql select

我有下表:

CREATE TABLE studenttest 
(
    YEAR INT,
    DEPT VARCHAR(5),
    SEM INT,
    REGNO INT,
    NAME VARCHAR(20),
    ENGLISH VARCHAR(2),
    MATHS VARCHAR(2),
    PHYSICS VARCHAR(2),
    CHEMISTRY VARCHAR(2),
    EG VARCHAR(2),
    FOC VARCHAR(2),
    LAB1 VARCHAR(2),
    LAB2 VARCHAR(2),
    LAB3 VARCHAR(2)
)

使用以下数据:
INSERT INTO studenttest 
 values
 (2010,'cse',3,1,'saravaanan','a','b','c','d','ra','f','g','h','i'),   
 (2010,'cse',3,2,'raja','ra','b','c','d','e','f','g','h','i'),
 (2010,'cse',3,3,'selvam','a','b','c','d','e','f','g','h','i')

我想查询此数据以获取在任何科目中都没有“ra”成绩的所有学生的结果集。

最佳答案

SELECT  a.*
FROM    studenttest a
        LEFT JOIN
        (
          SELECT regno, name
          FROM studenttest
          WHERE ENGLISH = 'ra' OR
                MATHS = 'ra' OR
                PHYSICS = 'ra' OR
                CHEMISTRY    = 'ra' OR
                EG  = 'ra' OR   
                FOC = 'ra' OR   
                LAB1 = 'ra' OR  
                LAB2 = 'ra' OR  
                LAB3 = 'ra'
        ) b ON a.regno = b.regno 
               AND a.Name = b.Name   -- this line is OPTIONAL
WHERE   b.regno IS NULL
  • SQLFiddle Demo Link
  • 关于sql - 如何在同一个表中组合多个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14079388/

    相关文章:

    mysql - 如何使用左连接来使用聚合函数?数据库

    c# - 创建连接字符串并使用 SQL Server LocalDB

    sql - sp_executesql 参数大小限制

    sql - 每个替代方案都有 T-SQL?

    php - 从 MySQL 表获取排名到 TextView

    MySQL:查找过去或 future 最近的日期

    python - 如何强制 Postgresql 使用任何 SQL 语句为丢失的数据返回 None?

    python - 无法使用pypyodbc在python中使用where子句运行mssql select查询

    sql-server - 每天通过电子邮件自动传输 SQL Server 数据

    sql-server - 如何在 SQL 中将二进制值打印为十六进制?