oracle 常用語法筆記

2021-08-15 04:53:55 字數 3168 閱讀 9421

字串處理

substr(source,start,length)方法

該方法用於從某個字串的擷取一定長度的子字串,substr(source,start,length) 第乙個引數是源字串,第二個引數表示從哪個位置開始擷取字串,其中正負號代表方向,正好代表從左到右,負號代表從右到左,數值代表從第幾個字元開始擷取,length表示擷取字串的長度大小,當start為0時,效果與等於1相同(start只是確定擷取的其實位置,擷取方向永遠是從左到右)

select substr('hello world!',1,5) from dual t   //展示結果hello 從左邊第乙個數開始擷取5個字元

select substr('hello world!',1,5) from dual t //展示結果hello 從左邊第乙個數開始擷取5個字元

select substr('hello world!',-6,5) from dual t //展示結果world 從右邊第六個數開始擷取5個字元

|| 字串連線符號

改方法主要用於字串的連線

select 'hello'||' world' from dual t  //展示結果hello world
not exists方法去最值

在平時取資料的時候一般會分組,但是分組對字段的選取是有侷限性的。還有一種方法是先把最大值選出來,然後根據最大值去找那條記錄。其實用not exists方法可以一步搞定

現在我要從這張使用者表中找到最後建立的那個使用者

這個sql的邏輯:不存在乙個使用者的建立時間比這個使用者的建立時間晚,那麼這個使用者就是最後常見的使用者

oracle中數字的取整與四捨五入(ceil,floor,round,trunc)

ceil函式用於返回乙個大於或者等於當前數字的整數

floor函式用於返回乙個小於或者等於當前數字的整數

round函式用於對指定精度的數字進行四捨五入

trunc函式用於對數字,日期按照指定的精度進行擷取

select ceil(10.125) from dual //返回結果11,返回乙個大於或者等於當前數字的整數

select floor(-10.125) from dual //返回結果-11 返回乙個小於或者等於當前數字的整數

select round(0.125,2) from dual //返回結果0.13

select round(0.124,2) from dual //返回結果0.12

select trunc(0.125,2) from dual //返回結果0.12

select trunc(sysdate,'mm') from dual //返回結果2018/2/1

to_char(source, format)  ,to_date(source,format) ,to_number(source) 用於型別之間的轉換

時間轉換成一定格式的字串

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss day') from dual //展示結果:2018-01-31 10:03:47 星期三

可以看見結果中的每一項都與format的格式保持一致,具體要這樣的格式你可以根據自己的需要進行相應的調整

select to_char(0.125,'fm990.00')||'%' from dual //展示結果0.13%

在返回百分比的時候經常用到,'fm990.00'

select to_date('2018-1-2 11:11:11','yyyy-mm-dd hh:mi:ss') from dual //展示結果:2018/1/2 11:11:11

format與source的精度要保持一致

select to_number('11.11') from dual //展示結果11.11

over (partition by ... order by ...) 

這個函式可以對錶起到分組的效果,然後通過具體的函式(求和,求平均等)在相應的記錄上拼接相應的字段

這是乙個和二班的成績表,通過上面的函式可以在每個同學後面拼接自己班級的最高成績和平局成績

條件判斷 decode與case when..then

當返回的內容根據乙個欄位來決定的時候可以用decode或者case when ...then,

decode(條件,var1,值1,var2,值2,...,預設值)   

根據條件得出的結果逐個與var引數比較,一旦相等,就去相應的值返回,但是這個方法只能判斷相等,不能判斷大於或者小於,要判斷大小可以用case表示式。由於decode表示式不能判斷大小,一般會與sign函式搭配來解決部分大小判斷問題。其中引數裡面的條件,var1經過計算必須是數字或者字串

case(條件,when 表示式1 then 值1 when 表示式2 then 值2 else 預設值 end)

這個函式可以根據根節點返回整個屬性結果,可以用connect_by_root(var) 來保留根節點,用於統計

oracle常用語法

select from student select from subject 新增一條資料 insert into student stuid,stuname,age,address,phone,email values 01,張三 男 21,北京市海淀區杏石口路98號 18236886051 1...

mysql常用語法 MySQL常用語法

更新資料 update 表名 set 健名 更改的值 where 建 刪除資料 delete from 表名 where 索引 create index 索引名稱 on 表名 鍵名 建立試圖 create view 檢視名 鍵,鍵 as select matchno,abs won lost fro...

Markdown常用語法筆記

目錄 區塊 分隔線 鏈結 段落和換行 段落 由乙個或多個連續的文字行組成 需要輸出換行效果 在插入處先按入兩個以上的空格然後回車。標題 類 setext 形式是用底線的形式,利用 最高端標題 和 第二階標題 例如 this is an h1 this is an h2 任何數量的 和 都可以有效果。...