----------------------------------------------單行函式特徵:單行函式對單行操作每行返回一個結果有可能返回值與原引數資料型別不一致單行函式可以寫在SELECT、WHERE、ORDERBY子句中有些函式沒有引數,有些函式包括一個或多個引數函式可以巢狀--------------------------------------------------------------------------------字元函式--------------------對字元進行操作的函式----大小寫轉換--LOWER將字元轉小寫1、將所有員工的名字轉小寫selectename,empno,lower(ename)fromemp;--dual虛表不真實存在,返回一行記錄selectlower('wu.yueHong@neusof.com')fromdual;--wu.yuehong@neusof.comselect1fromdual;--UPPER將字元轉大寫selectUPPER('wu.yueHong@neusof.com')fromdual;--WU.YUEHONG@NEUSOF.COM--INITCAP將英文單詞首字母轉大寫其他字母轉小寫selectINITCAP('wu.yueHong neusof.com')fromdual;--Wu.YuehongNeusof.Com--字元處理--CONCAT(a,b):拼接a和b字元拼接類似於||2、查詢僱員姓名和工資顯示的結果為ename+sal(SMITH800)selectename||salfromemp;selectconcat(ename,sal)fromemp;--SMITH8003、查詢僱員姓名和工資顯示的結果為ename+的工資是+sal(SMITH的工資是800)selectename||'的工資是'||salfromemp;selectconcat(concat(ename,'的工資是'),sal)工資fromemp;--函式可以巢狀--SUBSTR(a,b[,c])字串擷取①a:目標字串b:開始索引,索引從1開始c:擷取的長度,如果沒有引數c預設從b開始往後擷取全部②包含開始索引③如果b為正數:開始索引為從左往右取b位確定位置,如果為負數,開始索引為從右往左取|b|位確定位置selectsubstr('wu.yueHong@neusof.com',2)fromdual--u.yueHong@neusof.comselectsubstr('wu.yueHong@neusof.com',2,5)fromdual--u.yueselectsubstr('wu.yueHong@neusof.com',2,1000)fromdual--u.yueHong@neusof.comselectsubstr('wu.yueHong@neusof.com',-6,3)fromdual--of.--LENGTH(a):返回字元a長度selectlength('wu.yueHong@neusof.com')fromdual;--21--1.寫一個查詢,用首字母大寫,其它字母小寫顯示僱員的ename,顯示名字的長度,並給每列一個適當的標籤,--條件是滿足所有僱員名字的開始字母是J、A或M的僱員,並對查詢結果按僱員的ename升序排序。(提示:使用initcap、length、substr)selectinitcap(ename)姓名,length(ename)長度fromempwhereenamelike'J%'orenamelike'A%'orenamelike'M%'orderbyename;selectinitcap(ename)姓名,length(ename)長度fromempwheresubstr(ename,1,1)in('A','J','M')orderbyename;--INSTR(a,b[,c][,d])查詢字元①a:目標字串b:查詢的子串c:開始索引d:第幾次出現②在a中從c索引位置開始找b第d次出現的位置③預設情況下c和d可以省略,預設為1④包含開始索引⑤找不到返回0selectinstr('wu.yueHong@neusof.com','u')fromdual--2selectinstr('wu.yueHong@neusof.com','u',2,1)fromdual--2selectinstr('wu.yueHong@neusof.com','u',3,1)fromdual--5selectinstr('wu.yueHong@neusof.com','x',3,1)fromdual--0selectinstr('wu.yueHong@neusof.com','u',3,2)fromdual--14selectinstr('wu.yueHong@neusof.com','u',-9,2)fromdual--2如果c為負數開始索引為從右往左第|c|,往左找b第d次出現的位置--LPAD(a,b,c)左填充返回a被c從左面填充到b長度後的字串4、查詢僱員編號和僱員姓名,僱員姓名規定10個長度如果不夠左填充*selectlpad(ename,10,'*')fromemp;selectlpad('900','9','0')fromdual;--RPAD(a,b,c)右填充返回a被c從右面填充到b長度後的字串selectrpad(ename,10,'*')fromemp;selectrpad('900','9','0')fromdual;--REPLACE(a,b,c):字串替換a中的b用c來替換如果a中存在b的話一般用於敏感字元的處理selectreplace('習大大今天來我家吃飯','大大','主席')fromdual;selectreplace('習大大今天來我家吃飯','大大','******')fromdual;--TRIM去除字串頭部或尾部(頭尾)的字元一般用於去除首尾空格select' hello world 'fromdual;select' hello world ',trim(' hello world ')fromdual;select'HelloWorld',trim(leading'H'from'HelloWorld')fromdual;--HelloWorldelloWorldselect'HelloWorld',trim(leading'e'from'HelloWorld')fromdual;--HelloWorldHelloWorldselect'HelloWorld',trim(trailing'd'from'HelloWorld')fromdual;--HelloWorldHelloWorlselect'HelloWorld',trim(both'H'from'HelloWorldH')fromdual;--HelloWorldelloWorlselect'HelloWorld',trim('H'from'HelloWorldH')fromdual;--HelloWorldelloWorlselect*fromemp;select*fromempwherelower(ename)=' smith'andempno=7369;