SQL字符串比较

SQL字符串比较,第1张

要学会先搜索

以使用instr函数对某个字符进行判断,判断其是否含有指定的字符

其语法为:

instr(sourceString,destString,start,appearPosition).

instr('源字符串'

,

'目标字符串'

,'开始位置','第几次出现')

其中sourceString代表源字符串;

destString代表想聪源字符串中查找的子串;

start代表查找的开始位置,该参数可选的,默认为1;

appearPosition代表想从源字符中查找出第几次出现的destString,该参数也是可选的,默认为1;

如果start的值为负数,那么代表从右往左进行查找,但是位置数据仍然从左向右计算。

返回值为:查找到的字符串的位置。

对于instr函数,我们经常这样使用:从一个字符串中查找指定子串的位置。例如:

SQL>

select

instr('yuechaotianyuechao','ao')

position

from

dual

POSITION

----------

6

从第7个字符开始搜索

SQL>

select

instr('yuechaotianyuechao','ao',

7)

position

from

dual

POSITION

----------

17

从第1个字符开始,搜索第2次出现子串的位置

SQL>

select

instr('yuechaotianyuechao','ao',

1,

2)

position

from

dual

POSITION

----------

17

注意:1。若‘起始位置’=0

时返回结果为0,

2。这里只有三个参数,意思是查找第一个要查找字符的位置(因为

‘第几次出现’默认为1),

当‘起始位置’不大于要查找的第一个字符的位置时,返回的值都将是第一个字符的位置,如果‘起始位置’大于要查找的第一个字符的位置时,返回的值都将是第2个字符的位置,依此类推……(但是也是以第一个字符开始计数)

sql里面字符串没有大小之分,只有长度之分,可以比较长度大小,但是想用一条sql语句直接拿到大小结果来说也不太方便,最好是借助程序或者sql脚本来做,我用oracle试了下,用case when函数是可以直接比较大小的,比如第一个值比第二个大输出0,否则输出1:

select (case when len1>len2 then 0 when len1<len2 then 1 end) as res from (

select length('asd') as len1,length('as') as len2 from dual) t

————————楼主看过来啊——————————

1、password类型的问题,char类型是固定长度的。

2、如果使用的是sqlserver,建议用varchar类型,此类型是变长的,直接可以当字符串用的,不知道楼主是什么数据库。

3、password的值前后有可能含空格,建议password.trim()去空格

if

(passwd!=password.trim().tostring())

——————————————汗,不爽!!!!!——————————


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10648989.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存