oracle中字符串的大小比较,字符串与数字的比较和运算
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle中字符串的大小比较,字符串与数字的比较和运算相关的知识,希望对你有一定的参考价值。
请教
1.oracle中字符串大小是怎么比较的,为什么'gfhfg'<'a','a'>'888'?
2.字符串和数字是怎么比较和运算的?在java中字符和数字的比较是将字符自动转换成数字类型,再比较和运算。oracle中呢?oracle中字符串和数字能比较吗?比如’av’与5怎么比较的?两者相加呢?为什么oracle中比较运算字符串和数字会报错?
请教前辈们,能否详细讲述一下
1、首先在oracle软件中,lower将字符串全部转换为小写。
2、upper将字符串全部转换为大写。
3、initcap将单词首字母转换为大写,其它转换为小写。
4、substr(字符串,3,4) 截取字符串 从指定位置第3个字符 截取4个字符 4不是必选,substr(字符串,-3)-3代表从字符串的右边第三个字符开始截取。
5、最后如果想要查询出第二个o的位置 可以使用instr('字符串','字符',1,2) 1 代表左起 2代表第二次出现的位置,instr 查询出字符所在字符串的位置永远都是左起开始查询。
参考技术A Oracle比较字符串是根据ASCII码来的,第一个字母的ASCII大小比较如果相等再比较下一个,类推。字符串和数字进行操作是会报异常的,因为类型不一样不能进行比较。
Oracle在执行SQL的时候有些时候会自动转换,比如:
select * from chan_customer cc where cc.customer_id = '1';
即使customer_id是数字型的也可以查出来,但是Oracle有区分字符和数字
就是通过加不加单引号来区分。本回答被提问者采纳 参考技术B oracle里字符串比较是按ascii码来比较的
你执行这个
select ascii('a'),ascii('888') from dual;
出来结果你就知道啥意思了 参考技术C 简单的说,先比较第一个字符,只要第一个字符ascii大,整个字符串就大了
以上是关于oracle中字符串的大小比较,字符串与数字的比较和运算的主要内容,如果未能解决你的问题,请参考以下文章