请问是不是有这功能的函数?

jjg0020 2004-03-10 10:27:46
各位:

我用的数据库是sqlserver 2000的,现在要做以下查询:

学生表

XH XM
2001 王一
2002 李二
2003 蒋王

奖惩表
JCDM中,用1表是奖励,用2表示惩罚,用NULL表示无

XH JCDM JCMC
2001 1 三好学生
2002 2 作弊处分
2003 NULL 无


现在要用一个查询语句产生以下数据:

XH XM JL CF
2001 王一 奖励 无
2002 李二 无 惩罚
2003 蒋王 无 无

请问查询语句要怎么写?
主要问题是怎么把奖惩情况分开,是不是有什么函数?
谢谢!
...全文
24 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
vcshcn 2004-04-16
  • 打赏
  • 举报
回复
select 学生表.xh,学生表.xm,奖惩表.jl,奖惩表.cf from 奖惩表 inner join 学生表 on 学生表.xh = 奖惩表.xh
建军黄 2004-04-16
  • 打赏
  • 举报
回复
用视图来实现很方便的
LoveSQL 2004-04-16
  • 打赏
  • 举报
回复
declare @ta table(XH varchar(10),XM varchar(10))
insert @ta select
'2001' , '王一' union all select
'2002' , '李二' union all select
'2003' , '蒋王'

declare @tb table( XH varchar(10),JCDM int)
insert @tb select
'2001', 1 union all select
'2002' , 2 union all select
'2003' , NULL



select a.XH , a.XM, case when b.JCDM=1 then '奖励' else '无' end as JL,
case when b.JCDM=2 then '惩罚' else '无' end as CF
from @ta a,@tb b
where a.XH=b.XH

--测试结果

XH XM JL CF
---------- ---------- ---- ----
2001 王一 奖励 无
2002 李二 无 惩罚
2003 蒋王 无 无

(3 row(s) affected)

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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