Tbl_Student表         |     Tbl_Score表
 --------------------        ------------------------------------          
 id      student_name        id        student_id       score 
 21      张三          |     1            21             80
 22      李四          |     2            22             93
 23      王五          |王五因为缺考,Tbl_Score表中没有王五的成绩。写一个标准SQL语句,查询的结果为:student_name        score
    张三              80
    李四              93
    王五              0

解决方案 »

  1.   

    Tbl_Student表 
     id     student_name 
    ---------------------------
     21        张三 
     22        李四 
     23        王五Tbl_Score表
    id       student_id         score
    ---------------------------------------
     1         21                80
     2         22                93王五因为缺考,Tbl_Score表中没有王五的成绩。写一个标准SQL语句,查询的结果为:student_name       score
    --------------------------
      张三                 80
      李四                 93
      王五                  0
      

  2.   


    select a.student_name , nvl(b.score,0)from 
    Tbl_Student a,
    Tbl_Score b
    where a.id = b.student_id(+)
      

  3.   

    with Tbl_Student as(
    select 21 id,'张三' student_name from dual
    union all
    select 22 id,'李四' student_name from dual
    union all
    select 23 id,'王五' student_name from dual
    ),
    Tbl_Score as(
    select 1 id,21 student_id,80 score from dual
    union all
    select 2 id,22 student_id,93 score from dual
    )
    select student_name,nvl(score,0) score from Tbl_Student tt full join Tbl_Score te on tt.id = te.student_id
      

  4.   

    select a.student_name,isnull(b.score,0) from Tbl_Student a left join Tbl_Score b on a.id=b.id
      

  5.   


    --用左连接加nvl()判断是否为空函数
    SQL> edi
    已写入 file afiedt.buf  1  with Tbl_Student as(
      2  select 21 id,'张三' student_name from dual
      3  union all
      4  select 22 id,'李四' student_name from dual
      5  union all
      6  select 23 id,'王五' student_name from dual
      7  ),
      8  Tbl_Score as(
      9  select 1 id,21 student_id,80 score from dual
     10  union all
     11  select 2 id,22 student_id,93 score from dual
     12  )
     13  select student_name,nvl(score,0) score
     14* from Tbl_Student a left join Tbl_Score b on a.id=b.student_id
    SQL> /STUD      SCORE
    ---- ----------
    张三         80
    李四         93
    王五          0