十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
可以写一个function,把字母都过滤掉,只剩下数字,然后就可以根据数字排序了
建网站原本是网站策划师、网络程序员、网页设计师等,应用各种网络程序开发技术和网页设计技术配合操作的协同工作。创新互联建站专业提供网站建设、网站制作,网页设计,网站制作(企业站、响应式网站设计、电商门户网站)等服务,从网站深度策划、搜索引擎友好度优化到用户体验的提升,我们力求做到极致!
CREATE OR REPLACE FUNCTION GETNUMBER(STR IN VARCHAR2) RETURN VARCHAR2 IS
V_TEMP VARCHAR2(200);
V_RETURN VARCHAR2(200);
IDX NUMBER := 1;
BEGIN
WHILE (IDX = LENGTH(STR)) LOOP
V_TEMP := SUBSTR(STR, IDX, 1);
IF (ASCII(UPPER(V_TEMP)) = 48 AND ASCII(UPPER(V_TEMP)) = 57) THEN
V_RETURN := V_RETURN || V_TEMP;
END IF;
IDX := IDX + 1;
END LOOP;
RETURN V_RETURN;
END GETNUMBER;
oracle中查询最大值用max函数。
如emp表中有如下数据:
现要查询sal的最大值,用如下语句:
select max(sal) from emp;
1、按照问题中的表样,先建测试表;create table test_max(qoor varchar2(20),para varchar2(100),strid number);
2、插入测试数据,
insert into test_max values(48,'厅门1',2);
insert into test_max values(251,'厅门2',7);
insert into test_max values(252,'厅门3',7);
insert into test_max values(259,'厅门2',9);
insert into test_max values(260,'厅门2',9);
insert into test_max values(263,'厅门2',12);
3、查询表中记录,最大的strid=12;select t.*, t.rowid from TEST_MAX t
4、获取最大数据,即strid=12的记录,编写sql;
select * from
(select t.*, row_number() over(order by strid desc) rn from TEST_MAX t) t
where rn =1;
首先,建立测试表,插入测试数据:
create table test_a (aa varchar2(6),bb varchar2(6));
当我们想要取每条记录中字段AA和BB的最大值(OR最小值)时,通常想到的逻辑是if-then-else;又或者是case- when-else-end?
emmm,其实一个关键词就可以搞定啦。取最大:greatest(字段1,字段2)取最小:least(字段1,字段2)。
select a.aa,a.bb,greatest(a.aa,a.bb) from test_a a ; --取字段aa和字段bb中的最大值
select a.aa,a.bb,least(a.aa,a.bb) from test_a a ; --取字段aa和字段bb中的最小值
END;