存储过程 sql sever

  1、创建一个存储过程,存储各部门的总工资与平均工资及部门编号。-------------------
create procedure sum_sal
as
select sum(salary) sum_sal,avg(salary) avg_sal,dept_id
from employee
group by dept_id

exec sum_sal

-- 2、创建一个存储过程,以员工姓名为参数,输入姓名后显示某人信息(模糊查询).-----------

create procedure emp_name
@name varchar(20)
as
select * from employee
where emp_fname+emp_lname like '%@name%'

exec emp_name 'a'

-- 3、创建一个存储过程,能够输出最高工资员工姓名。----------------------------------

create procedure max_sal
@maxsa decimal(20,3) output
as
select @maxsa = max(salary)
from employee

--分开两部分执行--

declare @maxsa decimal(20,3)
exec max_sal @maxsa output
print @maxsa


drop proc max_sal


-- 4、创建一个存储过程,以部门编号为参数,输入部门编号能够输出这个部门所有员工的信息。----

create procedure proemp_id
@dept_id int
as
select * from employee
where emp_id = @dept_id

exec proemp_id '100'

drop proc proemp_id

-- 5、创建一个存储过程,以部门名为参数,输入部门名能够输出这个部门经理的个人信息。------

create procedure prodept_head
@dept_id int
as
select e.* from employee e,department d
where e.dept_id=d.dept_id
and e.dept_id=@dept_id
and e.emp_id=d.dept_head_id


exec prodept_head '1001'


drop proc prodept_head

-- 6、创建一个存储过程,要求输入一个年份,返回在该年出生的员工所有信息。---------------

use demo

create procedure proc_birthday
@year varchar(4)
as
select * from employee
where year(birth_date)=@year --'1952'


exec proc_birthday '1953'


-- 7、创建一个存储过程输入员工编号和部门能够返回员工姓名和性别和薪金------------------

create procedure eee
@emp_id int
as
select emp_id,emp_fname+' '+emp_lname ,sex,salary
from employee
where emp_id=@emp_id

exec eee '102'

drop proc eee

-- 8.求100号部门女员工的最高工资和最小工资是多少。----------------------------------


create proc proc_sal
@max_sal decimal(20,3) output,
@min_sal decimal(20,3) output
as
select @max_sal=max(salary),@min_sal=min(salary)
from employee
where dept_id=100
and sex='f'
--order by salary

--执行

declare
@max_sal decimal(20,3),
@min_sal decimal(20,3)

exec proc_sal @max_sal output,@min_sal output

print '最高工资:'+convert(varchar(10),@max_sal)+' '+'最低工资:'+convert(varchar(10),@min_sal)
--print @min_sal

--字符串的转换:CONVERT(varchar(10),@stuid)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值