
sql server 2005 查询语句怎样写?
原先一条SQL语句查询出来的结果集不为空,再给定一组姓名如:张三、李四、王五,这组姓名不是查询出来的,是人为给定的。要求就给定的这组人名,和原SQL语句查询结果集中的a字...
原先一条SQL语句查询出来的结果集不为空,再给定一组姓名如:张三、李四、王五,这组姓名不是查询出来的,是人为给定的。
要求就给定的这组人名,和原SQL语句查询结果集中的a字段(姓名)所有值相比较,如果不存在,就在原结果集中增加一条记录,并给其b、c字段分别赋值为0,如果存在,则原值保持不变。示例如下:
原来查询出的结果:
a b c
张三 112 12
赵四 98 13
现给定一组姓名:张三、李四、王五、赵四
想要的结果:
a b c
张三 112 12
赵四 98 13
李四 0 0
王五 0 0
要求:一条语句(融合原先语句),怎样实现? 展开
要求就给定的这组人名,和原SQL语句查询结果集中的a字段(姓名)所有值相比较,如果不存在,就在原结果集中增加一条记录,并给其b、c字段分别赋值为0,如果存在,则原值保持不变。示例如下:
原来查询出的结果:
a b c
张三 112 12
赵四 98 13
现给定一组姓名:张三、李四、王五、赵四
想要的结果:
a b c
张三 112 12
赵四 98 13
李四 0 0
王五 0 0
要求:一条语句(融合原先语句),怎样实现? 展开
1个回答
展开全部
select a,sum(b) as b,sum(c) as c from
(
select a,b,c from table
union
select '张三',0,0
union
select '赵四',0,0
union
select '李四',0,0
union
select '王五',0,0
) a1
group by a
【oracle】的话
select a,sum(b) as b,sum(c) as c from
(
select a,b,c from table
union
select '张三',0,0 from dual
union
select '赵四',0,0 from dual
union
select '李四',0,0 from dual
union
select '王五',0,0 from dual
) a1
group by a
追问
union后面要加的“select 姓名,0,0”语句的个数是完全按照“给定的姓名”来的吧?不是“给定的姓名”+原查询出来的姓名吧!
追答
“给定的姓名”+原查询
select a,b,c from table 这个就把原有所有的记录给查出来了
再union“给定的姓名”的数据
一共有的所有人的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询