数据库Oracle与SqlServer与Access

1,时间:
Access:now()
SqlServer:getdate()
oracle:sysdate()
2,游标:
sqlserver:
declare   @id   int
declare  rs  cursor   for   select  PdaId  from  Biz_Pda  where  PdaState = ' 1 '   or  PdaState = ' 2 '  
if   @iPda = 1
begin
 
open  rs
 
fetch   next   from  rs
 
into   @id
 
while   @@fetch_status = 0
 
begin
  
-- 执行的操作
  end
 
close  rs
 
deallocate  rs
end
oracle:
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 ;

3,查询后赋给单个变量
sqlserver:

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:

ContractedBlock.gif ExpandedBlockStart.gif 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

 

ContractedBlock.gif ExpandedBlockStart.gif SqlServer
SELECT
UserPassportID 
as PassportID,
UserID,
GrantorID,
Case ObjectTypeID 
When 1 then ObjectID
End 
as TerminalID,
Type, Flag, GrantDate, Validate, Invalidate
From UserPassport

Access:

 

ContractedBlock.gif ExpandedBlockStart.gif 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

转载于:https://www.cnblogs.com/noahsky/archive/2008/01/25/1052560.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值