精华内容
下载资源
问答
  • 按以下方式排序: 空 空 10 11 N1![图片说明](https://img-ask.csdn.net/upload/202009/09/1599630591_102252.png) N1-2 N2-2 N3-1 P1-1 P2-1 ORDER BY 的写法应该怎么写?
  • 目录目录 CHAR与VARCHAR2类型 CHAR和VARCAHR2的存储编码 CHAR和VARCHAR2的最大长度 LONG和CLOB类型CHAR与VARCHAR2类型 ... 如”HELLOWORLD”字符串,共10个英文字母 1)CHAR(100):10个字母,补齐90个空格,实际占用100

    目录

    CHAR与VARCHAR2类型

       CHAR 存放定长字符,即存不满补空格 VARCHAR2存放变长字符 ,存多少占用多少空间。
       如”HELLOWORLD”字符串,共10个英文字母
       1)CHAR(100):10个字母,补齐90个空格,实际占用100
       2)VARCHAR2(100):10个字母,实际占用10
       3)CHAR与VARCHAR都是按照字符的自然排序。
    

    CHAR和VARCAHR2的存储编码

    **默认单位是字节,可指定为字符**
    1)CHAR(10),等价于 CHAR(10 BYTE)
    2)指定单位为字符:CHAR(10 CHAR),20 个字节
    3)VARCHAR2(10),等价于VARCHAR2(10 CHAR),20个字节
    
    **每个英文字符占用一个字节,每个中文字符按编码不同,占用2-4个字节**
    --ZHS16GBK:2个字节
    

    CHAR和VARCHAR2的最大长度

    1)CHAR最大保存取值为2000字节
      最多2000个英文字符,1000个中文字符(GBK)
    2)VARCHAR2最大取值为4000个字节
      最多保存4000个英文字符,2000个汉字(GBK)
    3)CHAR可以不指定长度,默认为1,VARCHAR2必须指定长度
    

    LONG和CLOB类型

    1)LONG:VARCHAR2加长版,存储变长字符串,最多达2GB的字符串数据
    2)LONG有诸多限制:每个表只能有一个LONG类型列;不能作为主键;不能建立索引;不能出现在查询条件中........
    3)CLOB:存储定长或变长字符串,最多达4GB的字符串数据
    4)ORACLE建议开发中使用CLOB替代LONG类型
    

    eg:`

        CREATE TABLE student(
        id NUMBER(4),
        name CHAR(20),
        detail  CLOB); 
    展开全文
  • oracle字符串排序

    2020-12-27 10:50:18
    oracle字符串排序oracle字符串排序oracle字符串数字部分排序 oracle字符串排序 select * from table order by to_number(id) oracle字符串数字部分排序 用正则 select * from table order by to_number(regexp_...

    oracle字符串排序

    select * from table order by  to_number(id)
    

    oracle字符串数字部分排序

    用正则

    select * from table order by  to_number(regexp_replace(id,'[^0-9]'))
    
    展开全文
  • 主要介绍了Oracle数据库中对Null值的排序及Null与空字符串的区别,讲解了在order by排序中如何定义null值项的位置及其与字符串' '的不同,需要的朋友可以参考下
  • 一、需求 ... ”将其拆分为三段,并进行排序。 二、代码 select TID,(substr(tid,instr(tid,'.',1)+1)) from TEST ORDER BY to_number(REGEXP_SUBSTR(tid, '[[:alnum:]]+', 1, 1)) NULLS...

    一、需求

      表中有1,1.2,1.1.1数据到6.12.222的数据,现需实现根据分隔符“ . ”将其拆分为三段,并进行排序。

    二、代码

     

    select TID,(substr(tid,instr(tid,'.',1)+1))
      from TEST
     ORDER BY to_number(REGEXP_SUBSTR(tid, '[[:alnum:]]+', 1, 1)) NULLS FIRST,
          to_number(REGEXP_SUBSTR(tid, '[[:alnum:]]+', 1, 2)) NULLS FIRST,
          to_number(REGEXP_SUBSTR(tid, '[[:alnum:]]+', 1, 3)) NULLS FIRST
    

    三、使用的函数

    • substr() 取得字符串中指定起始位置和长度的字符串 substr( string, start_position, [ length ] )
    • instr() instr函数返回要截取的字符串在源字符串中的位置。返回索引
       语法如下:
         instr( string1, string2 [, start_position [, nth_appearance ] ] )
    参数含义
    string1源字符串,查找此字符串中的数据。
    string2目标字符串,需要在string1中查找的字符串,如分隔符。
    start_position代表从string1哪个位置开始查找。可选项,默认为1。
    nth_appearance代表从第几次出现string2处开始查找。可选项,默认为1。
    • REGEXP_SUBSTR() R延伸SUBSTR函数的功能,搜索一个正则表达式模式字符串。
       语法如下:
         REGEXP_SUBSTR(source_char, pattern [, position [, occurrence [, match_parameter ]]])
    参数含义
    source_char源字符串,查找此字符串中的数据。
    pattern正则表达式。
    position从第几个位置开始正则表达式的查找。
    occurrence代表从第几个匹配位置开始执行。
    match_parameter模式选择,i表示不区分大小写,c表示区分大小写等。

    四、执行结果

    执行结果


    作者:jocy_G
    链接:https://www.jianshu.com/p/415aca46b575
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    展开全文
  • 由于需要维护表里面的值,id主键是字符串型,保存的都是数字,每次都要看好久,才知道新增id,用哪个数字; 遇到了一个主键排序的问题。字符型的主键,保存的都是数字,数据导过来以后发现数据排序都是乱的,就想着...

    由于需要维护表里面的值,id主键是字符串型,保存的都是数字,每次都要看好久,才知道新增id,用哪个数字;

    遇到了一个主键排序的问题。字符型的主键,保存的都是数字,数据导过来以后发现数据排序都是乱的,就想着按数字规则排序。

    但发现to_number总是报错,就想着里面应该是有字符存在。后来使用了正则关系式,问题解决。

    以下是正则关系式的两种用法,记录下来:

    方法一:

    select * from nc_dept  order by  to_number(regexp_substr(id,'[0-9]*[0-9]',1));

     

    方法二:

    select * from nc_dept order by to_number(translate(id, '0123456789.' || id, '0123456789.')) asc nulls last;

     

     

     

    展开全文
  • ----------居左 使用----------:居右 第一列 第二列 第三列 第一列文本居中 第二列文本居右 第三列文本居左 SmartyPants SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如: TYPE ASCII ...
  • 需求 实现对数据库中无序的数据,且没有可以统一对比的字段的数据进行排序 sql写法: StringBuilder sb = new StringBuilder(); sb.append("SELECT * FROM T_C_COMMON_CODE "); sb.append(" where fk_...
  • 这是存入数据库的数据 String [] str = new String[]{"info1","info10","info2","info3","info4","info5-5","info6-4","info7-4"}; 这是SQL语句 select * from talbe order by to_number(translate(排序的字段, '...
  •  某小区,需要按照小区、楼栋、单元号、房间号进行排序,但是按照地址描述排序时,因为字符串中包含数字,所以造成了如下的结果, 1号楼之后应该是2号楼,但是查询结果却是10号楼 。  尝试解决  使用正则表达式...
  • Oracle数据库之过滤和排序

    千次阅读 2017-01-04 20:19:55
    Oracle数据库总结:Oracle数据库之基本查询 Oracle数据库之单行函数 Oracle数据库之多行函数 Oracle数据库之多表查询SQL> –查询10号部门的员工 SQL> select * 2 from emp 3 where deptno=10; EMPNO ENAME ...
  • 最近学了一些关于Oracle字符串处理的方法,在这里记下来。 首先是sql中一些常用的字符串替代方法: % 表示零或多个字符   _ 表示一个字符  对于特殊符号可使用 ESCAPE 标识符来查找    select * from emp ...
  • oarcle 数据库中,有些字段是 字符型的但是内存里面有数字,如要进行排序,结果会怎样? 如: 有记录 1 2 10 15 3 这几条记录,如果按字符升序排列,结果为 1 10 15 2 3,结果是正确的。但是有时我们想得到这样的...
  • 将ubk_vhost_list表中的字段userid中的字符...表的名字 field_name —— 字段名 from_str —— 需要替换的字符串 to_str —— 替换成的字符串 今天运行了一个查询 UPDATE ubk_vhost_list SET userid = replace (use
  • oracle细节之字符串排序问题记录

    千次阅读 2018-07-28 11:47:07
    本博客记录一下一次踩坑记录,过程是这样的,在跟一个bug,涉及到一张中间表,然后这张中间表的主键是自增...这种中间表的主键,我刚开始并没有注意到是varchar类型的,以为是number类型的,数据库采用Oracle。PS:...
  • 普通排序利用:order by 字段名 ASC 但是遇到有中文而且类型是varchar类型的结果就是这样 政采代(甲)字第0298号 政采代(甲)字第0421号 政采代(甲)字第1098号 政采代(甲)字第1267号(延续) 政采代(甲)字第1179...
  • 今天遇到了Oracle数据库字符串(含数字)排序问题,这里记录的是如何用MyBatis-Plus的queryWrapper条件构造器来解决的方法。 造成的原因: 数据库字段为varchar类型(若为Number类型则无此问题) 数据库字符串排序是...
  • oracle 字符串排序

    2017-07-06 17:32:00
    WITH temp0 AS (SELECT LEVEL lv FROM dual CONNECT BY LEVEL <= 100) SELECT MAX(REPLACE(sys_connect_by_path(str, ' '), ' ', '')) f1 FROM (SELECT str, row_number() over(ORDER BY ascii(str) ASC) ...
  • oracle通过sql实现字符串数字oracle函数,可用于字符串的最终排序
  • select * from student order by to_number(studentid)
  • select t1.code, t1.name from jpncdb1.bd_defdoc t1 left join jpncdb1.org_orgs t2 on t1.pk_org=t2.pk_org left join jpncdb1.bd_defdoclist t3 ...
  • Oracle中进行查询排序时,如果排序字段里面有空值的情况下,排序结果可能会达不到自己想要的结果。 如 select * from tableTest order by VISITS desc   将原来的sql语句改写为:select * from tableTest ...
  • 数据库—》oracle 指定字符排序

    千次阅读 2018-05-22 18:28:45
    第一种方法(字符串): order by decode(producttype,'公募','1','专户','2','基本养老','3','社保','4','企业年金','5','养老金','6') ,fundcode asc 第二种方法(数字): order by instr('2,6,8,1,3,4,5,7...
  • 所以,这里说一下,这个id是字符串类型的,字符串类型的排序和number类型的排序是不一样的,Oracle字符串比较大小是根据ASCII来的,字符串排序是先比较第一个字符,eg:这里列举"9"和"10"的列子,这里的"9"和"10"都...
  • 在做echarts地图开发的时候,为了造数据方便,研究了下将给定的字符串转换成行记录以及将多行记录拼接成json字符串。  1.字符串转多行: select m.mc, trunc(dbms_random.value(100, 1000)) zbz from (select ...
  • oracle数据库,字段是varchar2类型即string,而其实存的是数字,这时候不加处理的order by的排序结果,肯定有问题 解决办法: (1)cast( 要排序的字段名 as integer) ,注意 integer 小写 (2)to_number ...
  • listagg(合并字段,'连接符号') within group (order by 排序字段)
  • 1.VARCHAR2等字符串类型 2.该字段的值非纯数字,类似于字母序号+数字序号的 3.字符的长度不一致的,比如有些会用0来填充,保持长度一致,也是不需要文中这样处理的,例如:A001,A002这样子 如果排序字段不符合...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 54,354
精华内容 21,741
关键字:

oracle数据库字符串数字排序