精华内容
下载资源
问答
  • Oracle 字符串比较大小

    万次阅读 2018-03-19 11:46:28
    原理:Oracle比较字符串是根据ASCII码来的,第一个字母的ASCII大小比较如果相等再比较下一个,类推。字符串和数字进行操作是会报异常的,因为类型不一样不能进行比较。Oracle在执行SQL的时候有些时候会...
    Oracle 可以字符串直接对比:例如:select * from mm where mm.date >= "2017-12-02" , date类型为varhcar2。 
         原理:Oracle比较字符串是根据ASCII码来的,第一个字母的ASCII大小比较如果相等再比较下一个,类推。
    字符串和数字进行操作是会报异常的,因为类型不一样不能进行比较。
    Oracle在执行SQL的时候有些时候会自动转换,比如:select * from chan_customer cc where cc.customer_id = '1';即使customer_id是数字型的也可以查出来,但是Oracle有区分字符和数字就是通过加不加单引号来区分。
    展开全文
  • Oracle 字符串比较大小规则

    万次阅读 2018-08-27 17:37:32
    字符串比较, 将字符转换成 ASCII 对应的数字再 比较大小 select ascii('100D1064'),ascii('100000') , ascii('199999') from dual;  ...

    字符串的比较, 将字符转换成 ASCII 对应的数字再 比较其大小

    select  ascii('100D1064'),ascii('100000') ,  ascii('199999')   from dual;  

    https://docs.oracle.com/cd/E11882_01/server.112/e41084/sql_elements002.htm#SQLRF30027

    Character Values

    Character values are compared on the basis of two measures:

    • Binary or linguistic sorting

    • Blank-padded or nonpadded comparison semantics

    The following subsections describe the two measures.

    Binary and Linguistic Comparisons

    In binary comparison, which is the default, Oracle compares character strings according to the concatenated value of the numeric codes of the characters in the database character set. One character is greater than another if it has a greater numeric value than the other in the character set. Oracle considers blanks to be less than any character, which is true in most character sets.

    These are some common character sets:

    • 7-bit ASCII (American Standard Code for Information Interchange)

    • EBCDIC Code (Extended Binary Coded Decimal Interchange Code)

    • ISO 8859/1 (International Organization for Standardization)

    • JEUC Japan Extended UNIX

    Linguistic comparison is useful if the binary sequence of numeric codes does not match the linguistic sequence of the characters you are comparing. Linguistic comparison is used if the NLS_SORTparameter has a setting other than BINARY and the NLS_COMP parameter is set to LINGUISTIC. In linguistic sorting, all SQL sorting and comparison are based on the linguistic rule specified by NLS_SORT.

    See Also:

    Oracle Database Globalization Support Guide for more information about linguistic sorting

    Blank-Padded and Nonpadded Comparison Semantics

    With blank-padded semantics, if the two values have different lengths, then Oracle first adds blanks to the end of the shorter one so their lengths are equal. Oracle then compares the values character by character up to the first character that differs. The value with the greater character in the first differing position is considered greater. If two values have no differing characters, then they are considered equal. This rule means that two values are equal if they differ only in the number of trailing blanks. Oracle uses blank-padded comparison semantics only when both values in the comparison are either expressions of data type CHARNCHAR, text literals, or values returned by the USER function.

    With nonpadded semantics, Oracle compares two values character by character up to the first character that differs. The value with the greater character in that position is considered greater. If two values of different length are identical up to the end of the shorter one, then the longer value is considered greater. If two values of equal length have no differing characters, then the values are considered equal. Oracle uses nonpadded comparison semantics whenever one or both values in the comparison have the data type VARCHAR2 or NVARCHAR2.

    The results of comparing two character values using different comparison semantics may vary. The table that follows shows the results of comparing five pairs of character values using each comparison semantic. Usually, the results of blank-padded and nonpadded comparisons are the same. The last comparison in the table illustrates the differences between the blank-padded and nonpadded comparison semantics.

    Blank-PaddedNonpadded
    'ac' > 'ab''ac' > 'ab'
    'ab' > 'a  ''ab' > 'a   '
    'ab' > 'a''ab' > 'a'
    'ab' = 'ab''ab' = 'ab'
    'a ' = 'a''a ' > 'a'

     

    Portions of the ASCII and EBCDIC character sets appear in Table 3-8 and Table 3-9. Uppercase and lowercase letters are not equivalent. The numeric values for the characters of a character set may not match the linguistic sequence for a particular language.

    Table 3-8 ASCII Character Set

    SymbolDecimal valueSymbolDecimal value

    blank

    32

    ;

    59

    !

    33

    <

    60

    "

    34

    =

    61

    #

    35

    >

    62

    $

    36

    ?

    63

    %

    37

    @

    64

    &

    38

    A-Z

    65-90

    '

    39

    [

    91

    (

    40

    \

    92

    )

    41

    ]

    93

    *

    42

    ^

    94

    +

    43

    _

    95

    ,

    44

    '

    96

    -

    45

    a-z

    97-122

    .

    46

    {

    123

    /

    47

    |

    124

    0-9

    48-57

    }

    125

    :

    58

    ~

    126

     

    Table 3-9 EBCDIC Character Set

    SymbolDecimal valueSymbolDecimal value

    blank

    64

    %

    108

    ¢

    74

    _

    109

    .

    75

    >

    110

    <

    76

    ?

    111

    (

    77

    :

    122

    +

    78

    #

    123

    |

    79

    @

    124

    &

    80

    '

    125

    !

    90

    =

    126

    $

    91

    "

    127

    *

    92

    a-i

    129-137

    )

    93

    j-r

    145-153

    ;

    94

    s-z

    162-169

    ÿ

    95

    A-I

    193-201

    -

    96

    J-R

    209-217

    /

    97

    S-Z

    226-233

    展开全文
  • Oracle比较字符串是根据ASCII码来的,第一个字母的ASCII大小比较如果相等再比较下一个,类推。字符串和数字进行操作是会报异常的,因为类型不一样不能进行比较。 Oracle在执行SQL的时候有些时候会自动转换,比如:...
    Oracle比较字符串是根据ASCII码来的,第一个字母的ASCII大小比较如果相等再比较下一个,类推。字符串和数字进行操作是会报异常的,因为类型不一样不能进行比较。
    Oracle在执行SQL的时候有些时候会自动转换,比如:select * from chan_customer cc where cc.customer_id = '1';即使customer_id是数字型的也可以查出来,但是Oracle有区分字符和数字就是通过加不加单引号来区分。
            为了验证oracle里字符串比较是按ascii码来比较的 ,做一个简单的验证例子。        

     

    select ascii('a'),ascii('888') from dual;   

          总结:  亲自动手执行以下,比较结果会印象深刻些!

    https://www.cnblogs.com/zxf330301/p/5653876.html

    展开全文
  • oracle 字符串日期 作为 where 条件比大小 select * from 表名 WHERE TO_DATE(str_DATE, 'yyyy/MM/dd') >= TO_DATE('2014/10/18', 'yyyy/MM/dd');

    oracle 字符串日期 作为 where 条件比大小

     

    select * from 表名  WHERE TO_DATE(str_DATE, 'yyyy/MM/dd') >= TO_DATE('2014/10/18', 'yyyy/MM/dd');

     

    展开全文
  • 在项目中使用mybatis-plus查询oracle时,有的数值字段(如金额、交易笔数的)是定义为varchar类型的,接口传过来的参数筛选值也是字符串类型的。 例如: 当筛选值是10000时,而数据库中对应的是 5006、4201等数值...
  • 字符串格式的日期比较大小

    千次阅读 2018-09-30 11:22:30
    oracle中如果数据库中存储的日期市字符串格式的,在进行比较时候需要进行转换 如设计表 SELECT * FROM dw_studio_success_stat t1  WHERE to_date(t1.achievement_time, 'yyyy-mm-dd')&gt;to_date('2017...
  • Oracle 字符串(varchar2) 长度限制详解

    千次阅读 2020-07-24 01:46:46
    oracle数据库相信大家都比较熟悉,数据库中有一种非常常用的数据类型:字符串型。 对应该类型,在oracle中有三种比较常用的类型:varchar2(byte)、varchar2(char)、nvarchar2()。 那么这三种类型到底有什么区别...
  • 原来是Oracle对于字符串的排序是先排第一位的数字(从左往右数),空格先排,然后按照数字小的先排,后面才到数字大的。 比如1,2,12,13,23,24,排完之后的顺序是:1 12 13 2 23 24。 对于这个问题,可以把要排序的...
  • 针对Oracle数据库中汉字在不通的字符集下所占字符长度不通,在保存时可能需要对源字符串的长度进行判断。 实现过程如下 /** * 针对汉字 进行计算长度 * @param string 计算的字符串 * @param ...
  • 1. SUBSTR方法 SELECT * FROM IMS_COMPANY_PROJECT...char将时间转换为自己想要的时间格式,然后与前端传过来的时间进行比较 如前端传值为2018-01-03 3.to date方法 把前端传来的字符串时间转换为数据库中得日期类型 
  • "TO_CHAR"(字段名,'YYYY-MM-DD')=‘2017-11-27’
  • 一、oracle字符串类型字段排序 首先查看建表语句 CREATE TABLE TESTTP ( ID NUMBER PRIMARY KEY, TCODE VARCHAR2(50), TCOLOR VARCHAR2(1000)) 然后往里面插入数据,数据如下图 从上面的图看来,默认是以ID进行...
  • 所以,这里说一下,这个id是字符串类型的,字符串类型的排序和number类型的排序是不一样的,Oracle字符串比较大小是根据ASCII来的,字符串排序是先比较第一个字符,eg:这里列举"9"和"10"的列子,这里的"9"和"10"都...
  • 1.Oracle比较字符串是根据ASCII码来的,第一个字母的ASCII大小比较如果相等再比较下一个; 函数来说明: CREATE OR REPLACE FUNCTION MinOrMax(para1 in VARCHAR2, para2 in VARCHAR) return number as begin if...
  • Oracle字符串比较 empty string

    千次阅读 2018-05-22 13:01:09
    很容易犯的一个错误, In Oracle when empty string compare with other not null string, the value is always NULL,当 STR_1 是空字符串,STR_1 != STR_2 将返回FALSE. STR! 不会被赋值为STR2.IF STR_1 !=...
  • oracle日期与字符串的相互转化

    千次阅读 2020-05-12 17:44:12
    1.字符串转为日期格式(to_date) 例1:把字符串类型2005-01-01 13:14:20 转成 2005/1/1 13:14:20日期格式 select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual; 结果: 例2:把字符串类型...
  •  FOR curB IN cur_antherParam LOOP--------遍历第二个字符串是否在第一个字符串中  IF INSTR(aParam,curB.personStr)=0 THEN  Result:='false';  RETURN Result;   END IF;  END LOOP;  ...
  • 首先以正则进行字符串截取,因为regexp_substr的第4个参数为分隔组的第几位,由于是不确定的,所以后面通过connect by 来限制分隔组有几个,通过字符串的长度,去掉分隔符,获取长度大小。 倒数第二层则通过wm_...
  • 这是针对不知道字符串大小并且不占用额外空间的做法,需要非常繁琐的操作,要加很多标记,越界判断也会有些麻烦(结合优势么,用字符串常量而不是栈空间中的字符数组,有'\0'——就好判断了!) (关于空间的占用,...
  • 数据库中的字符串类型比较大小

    千次阅读 2019-07-09 19:20:24
    在MySQL和Oracle数据库中,字符串类型的数据是可以比较大小的,规则是按照相同位置的字符的ASCII码值的大小进行排序的。 字符串比较大小不是比较长短,根据相同位置的字符的ASCII码进行比较。 从第一个字符开始比较...
  • SELECT * FROM contract_ipaipc_ent_config t WHERE t.category=1 ORDER BY to_number(regexp_replace(code,'[^0-9]')); SELECT * FROM contract_ipaipc_ent_config t ORDER BY to_number(regexp_replace(code,....
  • oracle数据库 日期大小比较

    千次阅读 2020-11-20 13:12:28
    一、SQL语句 SELECT * FROM USER WHERE TIME ( ' 2020-11-07 00:00:00 ', ' yyyy-mm-dd hh24:mi:ss ' ) AND TIME >= to_date( ' 2020-07-07... 2020-11-07 00:00:00和2020-07-07 00:00:00为传入的条件,为字符串类型
  • oracle细节之字符串排序问题记录

    千次阅读 2018-07-28 11:47:07
    本博客记录一下一次踩坑记录,过程是这样的,在跟一个bug,涉及到一张中间表,然后这张中间表的主键是自增...这种中间表的主键,我刚开始并没有注意到是varchar类型的,以为是number类型的,数据库采用Oracle。PS:...
  • 在对业务数据排序时候,发现有些字段的记录是null值,这时排序便出现了有违我们使用习惯的数据大小顺序问题。在Oracle中规定,在Order by排序时缺省认为null是最大值,所以如果是ASC升序则被排在最后,而DESC降序则...
  • Greast(二级Access, C语言, VisualBasic, VisualFoxpro, 三级网络, 计算机一级) 计算机 计算机成绩全是汉字的,分为不合格,合格,优秀三档,但是用以上函数只能得到空格,大神能指点下如何以拼音顺序求几个...
  • Oracle字符串和日期的比较

    万次阅读 2012-06-29 17:28:05
    Oracle中有日期字符串和日期经行比较的时候, 最好把字符串转换为日期, 如:TO_DATE(T1.BUILD_DATE,'YYYY-MM-DD')

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 65,395
精华内容 26,158
关键字:

oracle字符串比较大小