Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1241201
  • 博文数量: 510
  • 博客积分: 20296
  • 博客等级: 上将
  • 技术积分: 4680
  • 用 户 组: 普通用户
  • 注册时间: 2007-10-30 03:58
文章存档

2011年(13)

2010年(92)

2009年(242)

2008年(163)

我的朋友

分类: 数据库开发技术

2010-08-08 20:26:47

  1. DECLARE @t table (姓名 varchar(10))
  2. insert into @T values('张三')
  3. insert into @T values('李四')
  4. insert into @T values('王二')
  5. insert into @T values(NULL )


  6. DECLARE @T2 table (姓名 varchar(10) , 课程 varchar(10) , 分数 int)
  7. insert into @T2 values('张三' , '语文' , 74)
  8. insert into @T2 values('张三' , '数学' , 83)
  9. insert into @T2 values('张三' , '物理' , 93)
  10. insert into @T2 values('李四' , '物理' , 91)
  11. insert into @T2 values(NULL , '数学' , 50)


  12. select * from @T a
  13. cross apply
  14.     (select 课程,分数 from @t2 where 姓名=a.姓名) b

  15. /*
  16. 姓名 课程 分数
  17. ---------- ---------- -----------
  18. 张三 语文 74
  19. 张三 数学 83
  20. 张三 物理 93
  21. 李四 物理 91

  22. (4 行受影响)
  23. */

  24. select
  25.     *
  26. from
  27.     @T a
  28. outer apply
  29.     (select 课程,分数 from @t2 where 姓名=a.姓名) b
  30. /*
  31. 姓名 课程 分数
  32. ---------- ---------- -----------
  33. 张三 语文 74
  34. 张三 数学 83
  35. 张三 物理 93
  36. 李四 物理 91
  37. 王二 NULL NULL
  38. NULL NULL NULL

  39. (6 行受影响)
  40. */
阅读(1688) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~