病毒安全知识,电脑网络技术,手工杀毒方法,答疑解决笔记

导航

« win7使用ghost之后网页上有错误 »

Oracle中的空字符串与instr

  一个decode的SQL语句老是筛不出想要的数据,应该是判断的字段包括了NULL,instr无法对其行使正常的查找。Oracle中的instr,在被查找的字符串中找得到要查找的字符串,就返回其所在的位置数值,找不到就返回0,而如果被查找的字符串是NULL,就返回不了任何东西。

oracle

  因此要对NULL先行处理,使用nvl,将NULL转换成其它数据,但是不能转换成空字符串(如nvl(data,''),否则instr还是用不了,虽然空字符串已经是字符型,但它没有长度(不信用length试试),其中上Oracle把它默认为NULL,虽然它实际上不能算NULL,可是用instr去搜索字符串,得到的还是空,不是0,也不是其它数值,还是不能发挥查找的功能。所以只能用nvl把NULL处理成一个空格,nvl(data,' '),这样才能正常使用instr。''和' '是不一样的,虽然都是字符型,但后者有一个空格在单引号里,就不是空值,它的长度就是1。


>> 除非说明均为原创,如转载请注明来源于http://www.stormcn.cn/post/1636.html

发表评论(无须注册,所有评论在审核通过后显示):

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

  • 微信订阅号
    微信订阅

最新发表

最新评论及回复

本站出现的所有广告均不代表本人及本站观点立场 | 关于我 | 网站地图 | 联系邮箱 | 返回顶部
Copyright 2008-2020 www.stormcn.cn. All Rights Reserved. Powered By Z-Blog.

闽公网安备 35010202000133号