orcale數據庫-----------------2。字符函數

字符函數:簡化操作———————————————單行函數、多行函數

單行函數:操作單個數據

多行函數:操作的數據是多個

——————————————————————————————————————————

單行函數

——————————————————————————————————————

字符函數

lower('字母')  ----------->轉小寫:

upper('字母')------------>轉大寫

initcap('字母')----------->首字母大寫

字符控制函數:concat('a','b')鏈接

substr(a,b) 從a中,b位開始到最後

substr(a,b,c)     從a中,b位開始,取c個長度

length('漢字')   字符數

lengthb('漢字')   字節數

instr(a,b)  在a中查找b,返回其位置 ,沒有返回則是0

lpad('字母',10,'符號')    左填充 ,例如:lpad('abc',10,'*')   ------->abc共三位,需要10位,左填7個*

rpad('字母',10,'符號') 右填充

trim('H',from 'Hello WorldH') from dual ;  ---->去掉首尾的H

replace('Hello world','l','*') ---->將l替換成*

————————————————————————————————————————

數學函數

Round(45.345,2) ------->將45.345保留2位小數,正數是小數區,負數是整數區

trunc(數字)    ---------->向下取整

————————————————————————————————————————

日期函數

select sysdate from dual;          日期默認輸出格式:MM-DD-YY

select to_char(sysdate,'yyyy-mm-dd')    ----->格式  YYYY-MM-DD

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')  from dual;    ----------->輸出格式:YYYY-MM-DD HH(24小時制) :MI:SS

計算的天數可以相加減,但是日期不能相加

months_between()相差天數,例如:select ename ,hiredate months_between (sysdate,hiredate) from emp;計算hiredate和sysdate相差的月份

add_months()相加月份----->例如:select add_months(sysdate,53) from dual ; 表示53個月後

last_day()   這個月份的最後一天,例如:select last_day(sysdate) from dual ; 表示一個月的最後一天

next_day() 下一個星期幾 ,例如:select next_day(sysdate,'星期六') from dual; 下一個星期六

round(時間,'年或月或日')  如果是年,按月算,如果是月,按日算

————————————————————————————————————————

轉換函數

to_char(date或number,轉換格式)

日期轉換:YYYY----年,MM------月,DY-------星期,DD--------日,可以在中間加入字符串

數字轉換:9代表數字,L代表本地貨幣, .小數點,   ,千位符

例如:to_char(123456,'L9,999.99') ----->¥123.456.00

————————————————————————————————————————

通用函數

NVL(a,b)   ------------------->如果a爲null,則返回b,如果a不爲null,返回a

NVL2(a,b,c) ---------->當a=null的時候,返回c,否則返回b

nullif(a,b) ----------->當a=b時,返回null,否則返回a

coalesce()   ------------->從左到右找到第一個不爲null的值

————————————————————————————————————————————————————————

條件表達式

IF-THEN-ELSE

在SQL語句中實現if-else語句

CASE 表達式   SQL99格式

DECODE  表達式      orcale自己的語法

CASE  :例如:

CASE 表達式 WHEN 表達式 THEN 返回值 WHEN 表達式 THEN 返回值 WHEN 表達式 THEN 返回值 ELSE 返回值

DECODE :例如:

DECODE (表達式,'條件一',返回值1,'條件二',返回值2,‘條件三’,返回值3)

————————————————————————————————————————————————

分組函數

AVG() COUNT() MAX() MIN() SUM()

在select 語句中,包含字段若不在多行函數中,那麼必須出現在分組函數中

例如:select a,b,c,d ,count(e) from emp group by a,b,c,d

與它相反,在group by 中出現的字段,可以不出現在select包含的字段中,例如:

select a,b,c count(e) from emp group by a,b,c,d

————————————————————————————————————————————————

多個分組函數過濾使用having

where和having的區別:

where 後面不能使用多行函數,where在from後面,having在group by後


發佈了36 篇原創文章 · 獲贊 14 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章