oracle語句書寫常見問題

來源:互聯網
上載者:User

標籤:日期   現在   test   事務   last   解析   cape   mysql   ast   

1.包含空值的運算式都為空白

例:select a,b,a*12,a*12+b from test     若a為null,則a*12和a*12+b為null,若b為null,則a*12+b也為null。

  nvl和nvl2濾空函數,nvl(a,b)判斷a是否為Null,如果為null,返回b,否則返回a;nvl2(a,b,c)判斷a是否為null,如果為null,返回c,不為null返回b。

2.null永遠不=null,判斷一個值是否為null。應該用 is null 或者is not null

例子:select * from emp where a=null  執行失敗

3.oracle串連符 || 相當於java中對String的相加

例子: select ‘Hello‘||‘ World‘ from dual;

  dual為oracle中內建的偽表。oracle中from後必須跟隨一張表名,若select屬性不跟任何錶相關,則使用from dual;

4.oracle中大小寫敏感,mysql中大小寫不敏感。

例子:select * from emp where a="King" 和select * from emp where a = "KING" 的結果是不一樣的,而在mysql中結果相同。

5.oracle中日期格式敏感。where中日期過濾條件必須符合預定義的日期格式。預設的格式是DD-MON-RR

6.between .. and .. 包含邊界,小值在前,大值在後。

7.如果集合中有null值,不能使用not in,可以使用in

例子:select * from emp where deptno not in(10,20,null);查詢不出資料

8.模糊查詢逸出字元的例子

例子:select * from emp where ename like ‘%\_%‘ escape ‘\‘

9.oracle的事務是自動開啟的,mysql的事務手動開啟

10.where語句的解析順序是從右往左的

例子:where condition1 and condition2;先執行condition2.

  盡量把容易false的語句寫在後面,效率更高。

11.order by 後面可以跟列名,運算式,別名,序號

例子:order by sal;order by sal*12;order by 年薪;order by 4;

12.order by 排序時,如果排序的列有null值,預設null顯示在後面,oracle中null值最大

例子:order by conn desc nulls last;

  如果不加nulls last,conn為null的記錄為顯示在最上方,加上nulls last,含有null值的記錄便會出現在最下方

oracle語句書寫常見問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.