Sql Server和oracle下外链接的语法比较
2007-07-25 17:50
330 查看
sql server下的*= 不等价与Oracle下的(+)
create table t_test1(
col1 varchar(10),
col2 varchar(10),
col3 varchar(10))
go
insert into t_test1 values('1','a','11')
insert into t_test1 values('2','b','22')
insert into t_test1 values('3','c','33')
go
create table t_test2(
col4 varchar(10),
col5 varchar(10),
col6 varchar(10))
go
insert into t_test2 values('1','a','aa')
insert into t_test2 values('2','b','bb')
insert into t_test2 values('4','d','dd')
go
以下两句是等价的
Sql Server下:
select * from t_test1,t_test2 where col1 *= col4
Oracle下:
select * from t_test1,t_test2 where col1 = col4(+)
以下两句是不等价的
Sql Server下:
select * from t_test1,t_test2 where col1 *= col4 and col4 = '4'
Oracle下:
select * from t_test1,t_test2 where col1 = col4(+) and col4 = '4'
但是以下这句是等价的(因为是sql-92语法)
select * from t_test1 left outer join t_test2 on col1 = col4
where col5 = 'b'
造成这种情况的原因是,SQL Server对*=的解释发生了歧义.在说明文件中,SQL Server表示此语法有可能造成歧义,建议使用SQL-92标准语法,并提示将在以后可能会放弃该语法
create table t_test1(
col1 varchar(10),
col2 varchar(10),
col3 varchar(10))
go
insert into t_test1 values('1','a','11')
insert into t_test1 values('2','b','22')
insert into t_test1 values('3','c','33')
go
create table t_test2(
col4 varchar(10),
col5 varchar(10),
col6 varchar(10))
go
insert into t_test2 values('1','a','aa')
insert into t_test2 values('2','b','bb')
insert into t_test2 values('4','d','dd')
go
以下两句是等价的
Sql Server下:
select * from t_test1,t_test2 where col1 *= col4
Oracle下:
select * from t_test1,t_test2 where col1 = col4(+)
以下两句是不等价的
Sql Server下:
select * from t_test1,t_test2 where col1 *= col4 and col4 = '4'
Oracle下:
select * from t_test1,t_test2 where col1 = col4(+) and col4 = '4'
但是以下这句是等价的(因为是sql-92语法)
select * from t_test1 left outer join t_test2 on col1 = col4
where col5 = 'b'
造成这种情况的原因是,SQL Server对*=的解释发生了歧义.在说明文件中,SQL Server表示此语法有可能造成歧义,建议使用SQL-92标准语法,并提示将在以后可能会放弃该语法
相关文章推荐
- SQL Server vs Oracle 简单语法比较
- SQL Server vs Oracle 简单语法比较
- oracle 与 sql server语法函数比较
- SQL Server与Oracle、DB2的性能比较
- 通过数据链接(Database Link),从Oracle 9i 连接 SQL Server 2000(实例)
- oracle和sql server 比较
- SQL SERVER 2005 通过链接服务器(Linked Server)访问 ORACLE 9i 的方法
- 使用SQL Server 2005 新的语法ROW_NUMBER()进行分页的两种不同方式的性能比较
- MySQL与Oracle 差异比较之二基本语法
- SQL Server与Oracle、DB2的比较
- SQL Server和Oracle防止数据锁定的比较
- SQL Server、Oracle、db2所提供的简装版(Express)比较
- ORACLE 与SQL SERVER SQL语言比较[三]
- Access和sql server的语法区别 (包括db2 oracle)
- SQL Server和Oracle并行处理比较分析
- ORACLE 与SQL SERVER SQL语言比较
- SQL SERVER 与ORACLE常用函数比较(转)
- 在64位SQL Server中创建Oracle的链接服务器
- ORACLE、SQL SERVER、MYSQL的比较
- ORACLE与SQL SERVER语法区别