在oracle中,with語(yǔ)句可以實(shí)現(xiàn)子查詢,用于創(chuàng)建一個(gè)公共臨時(shí)表,提高語(yǔ)句執(zhí)行的效率,語(yǔ)法為“with tempName as (select ….)select …”。
本教程操作環(huán)境:Windows10系統(tǒng)、Oracle 11g版、Dell G3電腦。
oracle中with的用法是什么
我們?cè)趏racle中寫(xiě)查詢語(yǔ)句時(shí),經(jīng)常會(huì)在select子句后或者from 子句后寫(xiě)子查詢,本文介紹怎么使用with子句實(shí)現(xiàn)子查詢,并且效率要更高
打開(kāi)pl/sql軟件,使用scott用戶登錄到oracle數(shù)據(jù)庫(kù),找到雇員表(EMP)
本示例需求是查詢薪資前5名的雇員信息,一般情況會(huì)想到先按薪資排序,然后取出前5條數(shù)據(jù),沒(méi)錯(cuò)也能實(shí)現(xiàn)目標(biāo)。
本例使用with語(yǔ)句先定義按薪資排序的雇員信息臨時(shí)查詢,然后查詢?cè)撆R時(shí)查詢即可;語(yǔ)法為with queryname1 as(sql查詢語(yǔ)句) select * from queryname1。
根據(jù)相關(guān)資料介紹,with子句的好處在于:如果遇到多個(gè)同一子查詢時(shí),采用此方式效率比一般子查詢高,而且代碼結(jié)構(gòu)更清晰易懂。
with語(yǔ)法支持允許定義多個(gè)子查詢,多個(gè)子查詢間有逗號(hào)分隔,定義與最后的查詢語(yǔ)句間沒(méi)有除號(hào)分隔。
推薦教程:《Oracle視頻教程》