1、时间: Access:now() SqlServer:getdate() oracle:sysdate() 2、游标: sqlserver:声明@id int 声明 rs 游标,用于从 Biz_Pda 中选择 PdaId,其中 PdaState = ' 1 ' 或 PdaState = ' 2 ' 如果 @iPda = 1 开始打开 rs 将下一个从 rs 获取到 @id
1、时间:声明 @id int
声明 rs 光标 for 选择 PdaId 来自 Biz_Pda 地点 PdaState='1' 或 PdaState=' 2'
如果 @iPda=1
开始
开放 rs
获取 下一个 来自 rs
进入 @id
同时 @@fetch_status=0
开始
--执行的操作
结束
关闭 rs
解除分配 rs
结束
declare
r_cert certrecord%rowtype;
cursor cs is select * from certrecord order by id;
begin
open cs;
loop
fetch cs into r_cert;
exit when cs%notfound;--没有数据退出
--执行的操作
end loop;
commit;--提交数据
close cs;
end;
select @parameter=t.aa from table
oracle:select t.aa into parameter from table
4,函数:
字符转换:
sqlserver:str(..)
oracle:to_char(..)
access:cstr(..)
字符截取:([]为可选)
sqlserver:substring(s,start,length)
oracle:substr(s,start[,length])
access:Mid(s,start[,length])
注:sqlserver和oracle中start可从0或1开始,二者结果是一样的,access只能从1开始
5,case
在oracle,sqlserver都有case语句:
oracle:
Code
select c.userid,
a.unitcode,a.crid,a.isck,a.iszk,a.iszt,a.iszh,a.iswbz,
(case
when (select t.rylx from t_caijirecord t where t.crid=a.crid)=0 then 1
else 0
end) iscjk,
(case
when (select t.rylx from t_caijirecord t where t.crid=a.crid)=1 then 1
else 0
end) isczk,
c.idcardnum,c.receivetime
from certrecord c inner join
a_certrecord a on c.id = a.crid
SqlServer
SELECT
UserPassportID as PassportID,
UserID,
GrantorID,
Case ObjectTypeID
When 1 then ObjectID
End
as TerminalID,
Type, Flag, GrantDate, Validate, Invalidate
From UserPassport
Access:
Access
select OperationNo,iif(IsMadeFile=1,'sended',iif(IsMadeFile=0,'nosend')) as IsSend from T_OperationHistory
select OperationNo,switch(IsMadeFile=1,'sended',IsMadeFile=0,'nosend') as IsSend from T_OperationHistory