浏览 1678 次
锁定老帖子 主题:几种数据库的语法的对比(整理中)
该帖已经被评为隐藏帖
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
作者 | 正文 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
发表时间:2008-01-29
二、Access与SQLSERVER部分相同数据库函数及关键字列表 1、 函数
三、Oracle与SqlServer的日期相减的处理 1、Oracle的日期形式的能够直接进行相减; SqlServer的日期相减要用函数:DATEIFF(day,startDate,endDate) (有+ 有-) 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
返回顶楼 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
发表时间:2008-01-29
http://www.jb51.net/article/8222.htm
转贴放在自己blog就可以了 引用 三、Access与语句SqlServer的语句语法区别
1、 Inser Into …..Select …From 语句: 在ACCESS中以下语句 Insert INTO PubSubJectAccCopys(Copy_id,Acc_id,Acc_Pid,Acc_name,acc_short,Acc_Comment,Acc_Pro,acc_type,Sub_id_flag,acc_index) (Select 200201,Acc_id,Acc_Pid,Acc_name,acc_short,Acc_Comment,Acc_Pro,acc_type,Sub_id_flag,acc_index FROM PubSubJectAcc Where PubSubJectAcc.co_type='03') 中后面"(select 200201******.co_Type='03')"中的小括号("(",")")必须去掉才能执行,如下: Insert INTO PubSubJectAccCopys(Copy_id,Acc_id,Acc_Pid,Acc_name,acc_short,Acc_Comment,Acc_Pro,acc_type,Sub_id_flag,acc_index) Select 200201,Acc_id,Acc_Pid,Acc_name,acc_short,Acc_Comment,Acc_Pro,acc_type,Sub_id_flag,acc_index FROM PubSubJectAcc Where PubSubJectAcc.co_type='03' 在SQL SERVER 中都可以 2、 Inner Join 语句1 StrSql:='select a.user_id,a.user_opcode,b.copy_name from sysuser a inner join (syscopysuser c inner join syscopys b on c.copy_id=c.copy_id) on a.user_id=c.user_id where a.user_opcode=''' +EdtUserOpCode.text+''' And copy_name='''+Tmpcopyname +''''; 应该改为 StrSql:='select a.user_id,a.user_opcode,b.copy_name from sysuser a inner join (syscopysuser c inner join syscopys b on c.copy_id=d.copy_id) on a.user_id=c.user_id where a.user_opcode=''' +EdtUserOpCode.text+''' And copy_name='''+Tmpcopyname +''''; 该行代码的检索条件错误:应该把C.copy_id=C.Copy_id 改为c.copy_id=d.copy_id 注:两种写法都能在SQL-SERVER中运行,但c.copy_id=C.copy_id在ACCESS中不能运行 3、 Inner Join 语句2 StrSql:='select copy_year,copy_name,a.copy_id from SysCopys a inner join SysCopysUser b on a.curcopy_flag=1 and a.copy_id=b.copy_id where b.user_id=' + '''' +TmpPubUserID+ ''''; 该为 StrSql:='select copy_year,copy_name,a.copy_id from SysCopys a inner join SysCopysUser b on a.copy_id=b.copy_id where a.curcopy_flag=''1'' and b.user_id=' + '''' +TmpPubUserID+ ''''; 注:两种写法都能在SQL-SERVER中运行,但第一种在ACCESS中不能运行 4、 Inner Join语句3 SQl server 中可以执行以下语句 'Select distinct sysoption.opti_id,sysoption.opti_name,sysoption.opti_code,sysroleoption.opti_sort From sysoption inner join sysroleoption ON sysoption.opti_id=sysroleoption.opti_id AND sysroleoption.role_id=:roleid' 但ACCESS中不能,只能 'Select distinct sysoption.opti_id,sysoption.opti_name,sysoption.opti_code,sysroleoption.opti_sort From sysoption inner join sysroleoption ON sysoption.opti_id=sysroleoption.opti_id Where sysroleoption.role_id=:roleid' 5、 Update语句 Sql SerVer 中能执行但Access 中不能 'Update sysuserrole SET sysuserrole.role_sort = (Select sysrole.role_sort FROM sysrole Where sysuserrole.role_id = sysrole.role_id and sysuserrole.user_id='01')' 6、 日期比较 SQL SERVER 中用 StrSql:='select copy_year,Start_month,Cur_month,Start_Flag,Start_date,End_date ' +'From SysCopys ' +'where copy_id='''+LoginCopyID+''' ' +'and start_date<='''+datetostr(LoginDate)+''' ' +'and end_date>='''+datetostr(LoginDate)+''''; ACCESS中用 StrSql:='select copy_year,Start_month,Cur_month,Start_Flag,Start_date,End_date ' +'From SysCopys ' +'where copy_id='''+LoginCopyID+''' ' +'and start_date<=#'+datetostr(LoginDate)+'# ' +'and end_date>=#'+datetostr(LoginDate)+'#' 参考以上的第10个函数“GetDateStr” 7、 最大数值获取语句 StrSql:='insert into sysRoleOption ' +'select '''+fidRoleId+''' as Role_ID,opti_id,' +'convert(numeric,opti_id)-(convert(numeric,opti_parentid)*100)+'+ MaxOptiSort +' as opti_Sort from sysoption where opti_parentid=''' +PCoTypeID(self.trvRoles.Selected.data)^.StrCoTypeID +''' and opti_bottom=''1'+''''; 改为 StrSql:='insert into sysRoleOption ' +'select '''+fidRoleId+''' as Role_ID,opti_id,' +'opti_id-opti_parentid*100+'+ MaxOptiSort +' as opti_sort from sysoption where opti_parentid=''' +PCoTypeID(self.trvRoles.Selected.data)^.StrCoTypeID +''' and opti_bottom=''1'+'''' 注:两种写法都能在SQL-SERVER中运行,但第一种在ACCESS中不能运行 但是考虑会出现Null值以及语句的通用性,可以使用以上的第07个函数“GetNullStr”和第09个函数“GetConvertStr”来完成字符串向数字,空值和0数字的转换:参考GetNextNumStr代码。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
返回顶楼 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||