--表a和表b两个表之间要存在一种联系(比如你的会员ID,在这两个表里都有吧?)
--所以你可以这样写
--select case a.STS when Y then b.临时地址 else a.联系地址 end as Address
--from a join b on a.会员ID=b.会员ID
--这样就可以得到相应的地址了
我不知道我有没有理解楼主的意思
我写的存储过程功能是:
输入一个城市的编号,得到这个城市里所有大学的所有学生集合
create procedure proc_total
@cityId int
@total int output
as
select schoolId into #newSchools from schools where cityId=@cityId--根据输入的城市Id,得到这个城市的所有学校Id,并且把它保存在一张临时表里(#newSchool就是零时表)
select departmentPeople into #newDepartments from Departments inner join #newSchools
on Departments.schoolId=#newSchools.schoolId--根据所有学校的Id,得到这么多学校,所有系的人数存储在一张零时表里
select @total=sum(departmentPeople) from #newDepartments --直接把存放人数的零时表求和,就得到了这个城市所拥有的所有学生。
go
最后,对楼主说声抱歉。
我在朋友的笔记本上看到的问题,没有环境测试,可能会有错误的地方。
是否可以解决您的问题?
在查询里面用 CASE WHEN 可以解决你的问题