存储过程 sql sever

来源:互联网 发布:人人聚财网络贷款 编辑:程序博客网 时间:2024/04/27 03:11
 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)
原创粉丝点击