『壹』 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