之前筆者和大家分享了《使用with語句來寫一個稍微複雜sql語句》,這一次筆者針對with語句和子查詢做了一個效能的比較。在博友SingleCat的提醒下,對with語句做一些效能測試,這裡使用的測試載入器是SQL Server Profile。我選擇了最後一個語句,因為這個語句比較複雜一點。開始的時候單獨執行一次發現他們的差別不大,就差幾個毫秒,後來想讓他們多執行幾次,連續執行10次看看執行的結果。下面貼出測試用的語句。/*with查詢*/
--建立一個表DROP TABLE TEST CASCADE CONSTRAINTS ;CREATE TABLE TEST(A VARCHAR(30),B VARCHAR(30));--查看具體的許可權SELECT DISTINCT PRIVILEGE FROM DBA_SYS_PRIVS WHERE PRIVILEGE LIKE '%DIRECTORY%';--用SYS使用者授權給SCOTTGRANT CREATE ANY DIRECTORY TO SCOTT
--用Regexwith t as (select '廣東,廣西,海南,貴州,雲南' str from dual)SELECT REGEXP_SUBSTR(str,'[^,]+',1,ROWNUM) province FROM tCONNECT BY ROWNUM<=LENGTH(str)-LENGTH(REPLACE(str,','))+1;--不使用正則with t as (select '廣東,廣西,海南,貴州,雲南' str from dual)SELECT
SQL語句中關於計算的彙總函式:COUNT(*) :計算元組的個數COUNT(<列名>SUM/AVG/MAX/MIN(<列名>):求一列值得總和/平均值/最大值/最小值(數值型)讓我們先分析一下,我們經常遇到的計算問題的類型1:計算元組(記錄)的個數:如現在正在上機的人數,需要在上機表中進行查詢並將其顯示出來。這裡我們可以利用對象的屬性來解決:dim mrc as adodb.recordsetdim
本文討論範疇只在真分頁,下面談到的分頁也特指真分頁)。分頁共性三種資料的分頁方式的比較MySql資料庫特色分頁Oracle資料庫常用分頁select T.*,rownum rn from () T where rownum <PageNo*PageSize) where rn >=(PageNo-1)*PageSizeselect A.*,rownum rn from () A where rownum <41) where rn
[main] WARN [org.hibernate.hql.internal.ast.HqlSqlWalker] – [DEPRECATION] Encountered positional parameter near line 1, column 95. Positional parameter are considered deprecated; use named parameters or JPA-style positional parameters