程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SyBase數據庫 >> SyBase教程 >> sybase與oracle區別之Sql語法篇

sybase與oracle區別之Sql語法篇

編輯:SyBase教程


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'

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved