刚学写稍微复杂的存储过程,看看这个

lizongqi 2003-02-19 10:28:45
表 account
aID:编号
aName:名称
aUserId:负责人编号(如果没有负责人,则此项设为0。我没有用外键约束,用触发器实现完整性)

表 user

uId:编号
uName:姓名

想写一个存储过程,如果负责人编号为0,显示字段为 aID,aName,aUserId
如果负责人编号不为0,显示字段为aID,aName,aUserId,user.uName

请高手赐教,嘻嘻
...全文
85 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lizongqi 2003-02-19
  • 打赏
  • 举报
回复
谢谢谢谢,
结帖
hjhing 2003-02-19
  • 打赏
  • 举报
回复
select a.*,(case a.auserid when 0 then '未定' else u.uname end) as uName
from account a left join [user] u
on a.auserid = u.Uid
hjhing 2003-02-19
  • 打赏
  • 举报
回复
select a.*,(case a.auserid when 0 then '未定' else u.uname end) as uName
from access a left join [user] u
on a.auserid = u.Uid
CABO 2003-02-19
  • 打赏
  • 举报
回复
把CCEO() 兄的略加修改:
select *,case when aUserId<>0 then (select uName from user where uid=a.aUserId else '未定' end) as uName
from account a
lizongqi 2003-02-19
  • 打赏
  • 举报
回复
to CABO(白椒腊肉)

不好意思,要显示,显示为 “未定”
happydreamer 2003-02-19
  • 打赏
  • 举报
回复
恭喜CCEO() 兄升级 呵呵
happydreamer 2003-02-19
  • 打赏
  • 举报
回复
select a.*,max(case when a.aUserId<>0 then b.uName else null end) as uName
from account a left join uer b
on a.aUserId=b.uId
group by a.aID,a.aName,a.aUserId

CCEO 2003-02-19
  • 打赏
  • 举报
回复
select *,case when aUserId<>0 then (select uName from user where uid=a.aUserId else null end) as uName
from account a

CABO 2003-02-19
  • 打赏
  • 举报
回复
如果为0,则连字段都不要了?null不行吗?
多条记录,有的为0,有的不是,怎么算?

22,206

社区成员

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

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