with alias_name as (select1)[,alias_namen as (select n) ]--中括號可以省略
select ….
舉例,如下兩表:
a bid name id name
1 li 1 li
2 qin 3 sun
語句如下:
例1
with test_with as(select * from a) select * from b where b.id in(select id from test_with)
例2with test_with1 as(select * from a),test_with2 as(select * from b)
select * from b where b.id in(select id from test_with1)
union all
select * from test_with2
1.使用with子句可以讓子查詢重用相同的with查詢塊,通過select呼叫(with子句只能被select查詢塊引用),一般在with查詢用到多次情況下。在引用的select語句之前定義,同級只能定義with關鍵字只能使用一次,多個用逗號分割。
2.with子句的返回結果存到使用者的臨時表空間中,只做一次查詢,反覆使用,提高效率。
3.在同級select前有多個查詢定義的時候,第1個用with,後面的不用with,並且用逗號隔開。
4.最後乙個with 子句與下面的查詢之間不能有逗號,只通過右括號分割,with 子句的查詢必須用括號括起來
5.如果定義了with子句,而在查詢中不使用,那麼會報ora-32035 錯誤:未引用在with子句中定義的查詢名。(至少乙個with查詢的name未被引用,解決方法是移除未被引用的with查詢),注意:只要後面有引用的就可以,不一定非要在主查詢中引用,比如後面的with查詢也引用了,也是可以的。
6.前面的with子句定義的查詢在後面的with子句中可以使用。但是乙個with子句內部不能巢狀with子句。
7.當乙個查詢塊名字和乙個表名或其他的物件相同時,解析器從內向外搜尋,優先使用子查詢塊名字。
8.with查詢的結果列有別名,引用的時候必須使用別名或*。
例:
whith的作用是建立多個臨時表,用於處理複雜業務邏輯,建立臨時表對資料進行預處理後,再由主sql進行處理,分解了較為複雜的業務邏輯,有些類似於自關聯;查詢效率比較高;
#@le.hao#
sql 中的with 語句使用
一直以來都很少使用sql中的with語句,但是看到了一篇文章中關於with的使用,它的確蠻好用,希望以後記得使用這個語句。一 with 的用法 with alias name as select1 alias namen as select n 中括號可以省略 select 舉例,如下兩表 a bi...
SQL中INSERT語句的使用技巧
在sql資料庫操作中,插入是最常用的操作之一,下面就為您介紹sql語句中insert語句使用的一些技巧,供您參考,希望對您有所啟迪。insert 向表中新增乙個新記錄,你要使用sql insert 語句。這裡有乙個如何使用這種語句的例子 insert mytable mycolumn values ...
sql語句使用
1.需求 按照查詢順序條件的排列順序返回 要點 where.in select from t device where guid in guid1 guid2 order by field guid,guid1 guid2 2.需求 替換資料表中的字段中相同資料 要點 replace函式 語法 re...