oracle 常用語句 函式(持續記錄)

2021-09-01 00:04:28 字數 3214 閱讀 1577

根據時間獲取最新的一條資料

select

* from

( select r.*,rownum num from tablename r order by r.create_date desc ) t

where

num = 1

row_number() over函式

使用row_number()函式進行編號,如

select id,name, row_number() over(order by psd) as num from tablename

先按psd進行排序,排序完後,給每條資料進行編號。

統計出每乙個使用者的所有訂單並按每乙個客戶下的訂單的金額 公升序排序,同時給每乙個客戶的訂單進行編號。這樣就知道每個客戶下幾單了

select row_number() over(partition by customerid order by totalprice) as rows,customerid,totalprice, did from op_order

單字段多個值的like模糊查詢regexp_like函式

select * from tablename where regexp_like(欄位名稱,' 值1|值2|值3 ')
varchar型別字段排序問題,使用cast函式,將varchar型別轉為number型別

cast(bha.bha_number as number)
oracle填充字串函式

語法:lpad( string,length,data)

string:字段;

length:填充後的字串長度;

data:填充字串,是個可選引數,這個字串是要貼上到string的左邊,如果這個引數未寫,lpad函式將會在string的左邊貼上空格。

應用場景:如order by排序,varchar2型別排序方式為1 10 13 2 22 33,使用lpad方法,lpad( 字段,2,0)後,varchar2排序方式為01 02 10 13 22 33

oracle時間函式

sysdate 預設是當前日期

日期格式可以結合其他函式使用,如:

to_char(sysdate,'yyyymmdd w hh24:mi:ss') 作為乙個字段查詢使用

同時也可以使用它進行計算

加法select sysdate,add_months(sysdate,12) from dual; --加1年

select sysdate,add_months(sysdate,1) from dual; --加1月

select sysdate,to_char(sysdate+7,'yyyy-mm-dd hh24:mi:ss') from dual; --加1星期

select sysdate,to_char(sysdate+1,'yyyy-mm-dd hh24:mi:ss') from dual; --加1天

select sysdate,to_char(sysdate+1/24,'yyyy-mm-dd hh24:mi:ss') from dual; --加1小時

select sysdate,to_char(sysdate+1/24/60,'yyyy-mm-dd hh24:mi:ss') from dual; --加1分鐘

select sysdate,to_char(sysdate+1/24/60/60,'yyyy-mm-dd hh24:mi:ss') from dual; --加1秒

減法select sysdate,add_months(sysdate,-12) from dual; --減1年

select sysdate,add_months(sysdate,-1) from dual; --減1月

select sysdate,to_char(sysdate-7,'yyyy-mm-dd hh24:mi:ss') from dual; --減1星期

select sysdate,to_char(sysdate-1,'yyyy-mm-dd hh24:mi:ss') from dual; --減1天

select sysdate,to_char(sysdate-1/24,'yyyy-mm-dd hh24:mi:ss') from dual; --減1小時

select sysdate,to_char(sysdate-1/24/60,'yyyy-mm-dd hh24:mi:ss') from dual; --減1分鐘

select sysdate,to_char(sysdate-1/24/60/60,'yyyy-mm-dd hh24:mi:ss') from dual; --減1秒

字母說明

ddd 年中的第幾天

ww 年中的第幾個星期

w 該月中第幾個星期

d 週中的星期幾

hh 小時(12)

hh24 小時(24)

mi 分

ss 秒

oracle trunc函式

1、trunc(for dates)

trunc函式為指定元素而截去的日期值。

其具體的語法格式如下:

trunc(date[,fmt])

其中:date 乙個日期值

fmt 日期格式,該日期將由指定的元素格式所截去。忽略它則由最近的日期截去

例:trunc(sysdate,'yyyy') --返回當年第一天。

trunc(sysdate,'mm') --返回當月第一天。

trunc(sysdate,'d') --返回當前星期的第一天。

trunc(sysdate,'dd')--返回當前年月日

2、trunc(for number)

trunc函式返回處理後的數值,其工作機制與round函式極為類似,只是該函式不對指定小數前或後的部分做相應捨入選擇處理,而統統截去。

其具體的語法格式如下

trunc(number[,decimals])

其中:number 待做擷取處理的數值

decimals 指明需保留小數點後面的位數。可選項,忽略它則截去所有的小數部分

例:trunc(89.985,2)=89.98

trunc(89.985)=89

trunc(89.985,-1)=80

Oracle常用語句 持續更新

select from v version select lengthb length from dualto date 2019 12 17 00 00 00 yyyy mm dd hh24 mm ss to date to char sysdate,yyyymm 01 yyyymmdd mont...

oracle常用語句 函式

一 常用語句 1 更新 update 表名 set 欄位1 value1 欄位2 value2 where 條件 2 插入 insert into 表名 欄位1 欄位2 欄位3 values value1 value2 value3 3 刪除資料 delete from 表名 where 條件 刪除...

oracle 常用語句

oracle 產看表空間 select total.name tablespace name free space,total space free space used space,total space from select tablespace name,sum bytes 1024 102...