‘壹’ sql语句 求高手解答
declare @a varchar(10),@c char(1)
declare b cursor
set @a=''
for select 编号 from 员工表 where 职称='销售员'
open b
fetch from b into @c
while @@fetch_status=0
begin
set @a=@a+@c+','
fetch from b into @c
end
print @a
close b
deallocate b
改了那么多次终于对了,,
‘贰’ 经过一段时间的工作,王向荣(员工编号为020010)收入增加1000元的SQL语句怎么写
这个用存储最好。当然用sql语句也行,就是select 工资+1000 from 表名 where 员工编号=020010.
‘叁’ PL/SQL语句如何给不同身份的人涨工资
where e.empno=empno; ,由于不知道给那个职位的涨工资,所以是要判断的,根据job,这个job从哪里来,当然从emp表中来select empno,ename ,sal from emp;做这个的时候应该先把可能有可能出现的Sql都写出来,这样子是一种方法,是IBM的DBA培训讲师告知的。这个cemp就是保存多个变量的值的,相当于一个集合,好吧cursor cemp is select empno, empjob from emp;--定义变量,这是其中方式之一pempno emp.empno%type;pjob emp.empjob%type;begin--开始--1: 打开游标open cemp;--循环游标中的值,给变量赋值LOOP--取出第一个员工fetch cemp into pempno, pjob;--退出,当是这个条件的时候推出exit when cemp%notfound;--开始判断职位 ,/*那个 语法介绍一下, 游标的使用语法 ,1: 定义游标 ,cursor 游标名字 is 后面是要向游标中添加那些值2: 打开游标,3: 取出游标里面的值,用 fetch ,一般都是写在循环里面,把游标的值赋给定义的变量,4: 关闭游标*//*判断语法 if then, elsif then, else end if;*//*循环的方法有三种, loop , end loop; 这是使用最常见的一种*/if pjob='PRESIDENT' then update emp set sal=sal+1000 where empno= pempno;elsif pjob='MANAGER' then update emp set sal=sal+800 where empno=pempno;else update emp set sal=sal+200 where empno=pempno;end if;END LOOP ;close cemp;--提交所修改的东西commit;dbms_output.put_line('涨工资完成');end;
‘肆’ sql语句:现在公司打算将年龄>=40岁并且薪水<2000元的员工中,将每个人加薪200
如果一张表
update Salary set Salary= Salary+200 where age>=40 and Salary<2000;
如果二张表
update User join Salary set Salary+=200 where User.age>=40 and Salary<2000 on User.id = Salary.uid;
‘伍’ 在“工资表”中给员工“司马光”工资增加200元的SQL语句是什么
update`工资表`set`工资_column`=`工资_column`+200where`name`='司马光';
‘陆’ 创建员工表EMP和工资表SAL,通过关联修改实现将“男”员工工资提高10%,写出相应SQL语句。
CREATETABLEEMP
(
EmployeeNameNVARCHAR(32),
SexNVARCHAR(1)
)
CREATETABLESAL
(
EmployeeNameNVARCHAR(32),
SalaryINT
)
INSERTINTOEMP
SELECT'张三',
'男';
INSERTINTOEMP
SELECT'李四',
'女'
INSERTINTOSAL
SELECT'张三',
100
INSERTINTOSAL
SELECT'李四',
100
SELECT*
FROMsal
UPDATEsal
SETSalary=Salary*1.1
FROMEMPb
WHEREdbo.SAL.EmployeeName=b.EmployeeName
ANDb.Sex='男'
SELECT*
FROMsal
‘柒’ 用SQL语句解释将公司中薪水低于平均薪水的员工的薪水提升20%,奖金提升20%,没有奖金则发100元。
SELECT 员工, CASE WHEN 薪水 > ( SELECT AVG(薪水)
FROM ( SELECT ISNULL(薪水, 0) 薪水 ,
员工
FROM TBZ_Customer
) 表
) THEN 薪水 * 1.2
WHEN ISNULL(薪水,0)=0
THEN 100
WHEN 薪水<0
THEN 薪水
END 薪水
FROM ( SELECT ISNULL(薪水, 0) 薪水 ,
员工
FROM 表
) A
奖金一样原理
‘捌’ sql写一个单表触发器,employee表中员工职位的升迁,底薪也随之提升
createtriggertrigger1on学生信息表forupdateasifupdate(学号)update成绩表set学号=a.asnofrom(selectinserted.学号asasno,deleted.学号asbsnofrominserted,deleted)asainnerjoin成绩表asbona.bsno=b.学号
‘玖’ 写sql语句,按人员等级分,等级高的人员放在前面,我表里的等级字段是字符串, ,我这个等级是
select * from 表
where substring(列,1,1)='1' --查询条件,列第一个字符是1,索引是从1开始的。
order by cast(substring(列,3,1) as int) desc --排序,把列的第3个字符转换为int型再排序
‘拾’ 将员工id为3的员工工资增加100的sql语句
使用update更新记录:
update工资表set工资=工资+100whereid=3