select * from A where to_char(日期字段,'yyyymm')=to_char(add_months(sysdate,-1),'yyyymm')
從網(wǎng)站建設到定制行業(yè)解決方案,為提供網(wǎng)站制作、成都網(wǎng)站制作服務體系,各種行業(yè)企業(yè)客戶提供網(wǎng)站建設解決方案,助力業(yè)務快速發(fā)展。成都創(chuàng)新互聯(lián)將不斷加快創(chuàng)新步伐,提供優(yōu)質(zhì)的建站服務。
這樣試驗一下,表名和字段名你替換一下,也就是把A和日期字段這倆地方換一下
SELECT substr('helloword',
-1,
5) from
dual
從右邊開始截取5位。
Oracle
截取字符串
1.
SUBSTR:取子字符串,從“起始位置”開始,取“多少"個,當起始位置為負數(shù)的時候,從右邊開始查找。
SUBSTR(源字符串,起始位置,要取多少位)
例:Select
SUBSTR('ORC+001',1,3)
From
dual;
返回的是“ORC”
Select
SUBSTR('ORC+001',-5,3)
From
dual;
返回的是“ORC”
2.
INSTR:默認查找順序為從左到右。當起始位置為負數(shù)的時候,從右邊開始查找。INSTR(源字符串,
目標字符串,
起始位置,
匹配序號)
例:Select
INSTR('ORC+001','+',1,1)
From
dual
;
返回的是"4",如果該字符串沒有匹配字符返回的是“0”。
substr(字符串,截取開始位置,截取長度) //返回截取的字
substr('Hello World',0,1) //返回結(jié)果為 'H' *從字符串第一個字符開始截取長度為1的字符串
substr('Hello World',1,1) //返回結(jié)果為 'H' *0和1都是表示截取的開始位置為第一個字符
substr('Hello World',2,4) //返回結(jié)果為 'ello'
substr('Hello World',-3,3)//返回結(jié)果為 'rld' *負數(shù)(-i)表示截取的開始位置為字符串右端向左數(shù)第i個字符
substr(string ,截取位置,截取長度)。注意:substr截取的是字符串,所以0.9需要用引號。
也不用創(chuàng)建啊,有個函數(shù)叫sign
用法:
select sign(數(shù)值) from dual
大于0返回1,等于0返回0,小于0返回-1
你說的那個
select * from count where sign(num1)=1
得出來的就是為正數(shù)的了
---補充--
create or replace FUNCTION NUM(v_num number)
return int is
Result int;
begin
if(v_num 0) then
Result := -1;
end if;
if(v_num = 0) then
Result := 0;
end if;
if(v_num 0) then
Result := 1;
end if;
return(Result);
end num;
用法與sign一致
如select num(100) from dual;
使用number類型。定義時這樣寫,number(6,3)。其中6表示一共6位。3表示有3位是小數(shù)。
select distanct * from 表名 where abs(表名.列名)=(select max(abs(表名.列名)) from 表名)