欢迎投稿

今日深度:

sybase与oracle区别之Sql语法篇

sybase与oracle区别之Sql语法篇



sybase与oracle区别之Sql语法篇
 
1、对null和空字符串的处理 
Oracle:没有空字符串,如果你将某值赋值为空字符,oracle会自动存成null 
Sybase: 区别空字符串和null 
如果想查询某个字段不为空的数据 
 
sybase可以写为:   www.2cto.com  
select * from table where (columA is not null and columA <>'') 
但是oracle如果这样写,是任何值都查询不到的。因为不管culumA是否为null, 
columA <>''或者columA='' 永远返回false, 
可以这样写:select * from table where columA is not null 
总结在oracel中可以取消对空串的考虑。特别是兼容两种数据库的程序应注意这一点。 
另:A<>'delete' 这里不包含null,应改写为 (A<>'delete' or A is null) 
 
2、update select 
在 SQL 中,表连接(left join、right join、inner join 等)常常用于 select 语句,其实在 SQL 语法中,这些连接也是可以用于 update 和 delete 语句的,在这些语句中使用 join 还常常得到事半功倍的效果。 
Update T_OrderForm SET T_OrderForm.SellerID =B.L_TUserID 
FROM T_OrderForm A LEFT JOIN T_ProductInfo   B ON B.L_ID=A.ProductID 
  www.2cto.com  
oracle: 
UPDATE A SET (A1, A2, A3) = (SELECT B1, B2, B3 FROM B WHERE A.ID = B.ID) WHERE ID IN (SELECT B.ID FROM B WHERE A.ID = B.ID) 
 
sybase: 
UPDATE table_A  SET a.A1 = b.B1, a.A2 = b.B2, a.A3 = b.B3  FROM table_A a JOIN table_B  b ON a.ID = b.ID and a.name='XXX' and b.B2='XXX'

www.htsjk.Com true http://www.htsjk.com/sybase/19435.html NewsArticle sybase与oracle区别之Sql语法篇 sybase与oracle区别之Sql语法篇 1、对null和空字符串的处理 Oracle:没有空字符串,如果你将某值赋值为空字符,oracle会自动存成null Sybase: 区别空字符串和null 如...
相关文章
    暂无相关文章
评论暂时关闭