问个sql语句

感觉学习有障碍 2015-06-09 06:02:33
想建立个视图 ,比如只有三个表 A,B,C ,若表A的type为10的话则和表B链接,若表A的type为20的话则和表B链接,怎么写视图的sql。来个人随口答下啊!!!
...全文
92 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
习惯性蹭分 2015-06-09
  • 打赏
  • 举报
回复

 Create view vw_test
 as
 select A.*,isnull(B.val,C.val)
 from A
 left join B on A.keyid=B.keyid and A.type=10
 left join C on A.keyID=c.Keyid and a.type=20
 where a.type in(10,20)
0808xyj 2015-06-09
  • 打赏
  • 举报
回复

-- 楼上整理,不过好像只可以取到B表或者C表的一个字段或者几个字段的值
if object_id(N'v_test') is not null
drop view v_test
go
Create view v_test
as
Select 
A.*
, case  when a.type = 10 then B表值 else null end as bvalue ,
, case  when a.type = 20 then C表值 else null end  as cvalue
from a
inner join b on a.id = b.id
inner join c on a.id = c.id
shoppo0505 2015-06-09
  • 打赏
  • 举报
回复
Select A.* , case a.type = 10 then B表值 as bvalue , case a.type = 20 then C表值 as cvalue From a Inner join b on a.连接键 = b.连接键 Inner join c on a.连接键 = c.连接键

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧