十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
select * from A where to_char(日期字段,'yyyymm')=to_char(add_months(sysdate,-1),'yyyymm')
从网站建设到定制行业解决方案,为提供网站制作、成都网站制作服务体系,各种行业企业客户提供网站建设解决方案,助力业务快速发展。成都创新互联将不断加快创新步伐,提供优质的建站服务。
这样试验一下,表名和字段名你替换一下,也就是把A和日期字段这俩地方换一下
SELECT substr('helloword',
-1,
5) from
dual
从右边开始截取5位。
Oracle
截取字符串
1.
SUBSTR:取子字符串,从“起始位置”开始,取“多少"个,当起始位置为负数的时候,从右边开始查找。
SUBSTR(源字符串,起始位置,要取多少位)
例:Select
SUBSTR('ORC+001',1,3)
From
dual;
返回的是“ORC”
Select
SUBSTR('ORC+001',-5,3)
From
dual;
返回的是“ORC”
2.
INSTR:默认查找顺序为从左到右。当起始位置为负数的时候,从右边开始查找。INSTR(源字符串,
目标字符串,
起始位置,
匹配序号)
例:Select
INSTR('ORC+001','+',1,1)
From
dual
;
返回的是"4",如果该字符串没有匹配字符返回的是“0”。
substr(字符串,截取开始位置,截取长度) //返回截取的字
substr('Hello World',0,1) //返回结果为 'H' *从字符串第一个字符开始截取长度为1的字符串
substr('Hello World',1,1) //返回结果为 'H' *0和1都是表示截取的开始位置为第一个字符
substr('Hello World',2,4) //返回结果为 'ello'
substr('Hello World',-3,3)//返回结果为 'rld' *负数(-i)表示截取的开始位置为字符串右端向左数第i个字符
substr(string ,截取位置,截取长度)。注意:substr截取的是字符串,所以0.9需要用引号。
也不用创建啊,有个函数叫sign
用法:
select sign(数值) from dual
大于0返回1,等于0返回0,小于0返回-1
你说的那个
select * from count where sign(num1)=1
得出来的就是为正数的了
---补充--
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位是小数。
select distanct * from 表名 where abs(表名.列名)=(select max(abs(表名.列名)) from 表名)