根據時間獲取最新的一條資料
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...