今天在修改一个bug的时候发现的一个比较奇怪的问题查询部门的时候偶尔会出现错误多查出一个不正确的部门

最后找到了原因

部门表 deptInfo

部门ID         部门名称

deptId         deptName      fatherID

-----------------------------------------------

100              总裁办             0
101              企业管理中心     100

select * from deptInfo di where di.fatherId =返回部门Id的函数

我使用到的一个函数偶尔会返回一个空字符串''

select * from deptInfo di where di.fatherId = ''

查询结果

-----------------------------------------------

100              总裁办             0
让我一时很奇怪 怎么会出现这种结果,从网上直接搜索关键字 “SqlServer 0 和空字符串”也没有搜到原因

最后胡乱搜索看到了隐式转换这个词才想到这里

从网上找了些资料总结一下

隐式转换指那些没有指定 CAST 或 CONVERT 函数的转换。显式转换指那些需要指定 CAST 或 CONVERT 函数的转换。以下图例显示了可对 SQL Server 2005 系

统提供的数据类型执行的所有显式和隐式数据类型转换。其中包括 xmlbigintsql_variant。不存在对 sql_variant 数据类型的赋值进行的隐式转换,但是存在转换为 sql_variant 的隐式转换。

从这张图上可以看到int型和varchar型之间是存在隐式转换的

隐式转换就像埋在我们身边的定时炸弹一样随时都可能爆发,我们写程序的的时候一定要小心

转载于:https://www.cnblogs.com/liubaolongcool/archive/2011/08/24/2152552.html

SqlServer 0和空字符串''等价?-----类型的隐式转换问题相关推荐

  1. JavaScript 类型的隐式转换

    JavaScript各种类型的隐式转换,一直没理出个头绪来,每次碰到都是得过且过,没有深究.今天读<JavaScript权威指南>,借其中章节一用,只为搞个明白. 一.布尔类型转换 布尔值 ...

  2. C++中的operator主要有两个作用,一是操作符的重载,一是自定义对象类型的隐式转换。

    C++中的operator主要有两个作用,一是操作符的重载,一是自定义对象类型的隐式转换.对于操作符的重载,许多人都不陌生,但是估计不少人都不太熟悉operator的第二种用法,即自定义对象类型的隐式 ...

  3. js拼接字符串时数据类型的隐式转换

    数据类型的隐式转换:字符串类型string>数值类型number>布尔类型boolean数字+字符串:数字需要转成字符串 数字+布尔值:布尔值需要转成数字(true转成1,false转成0 ...

  4. mysql字符串等于失效_MySql整型索引和字符串索引失效或隐式转换问题

    问题概述 写代码的时候,有一段sql,表示该sql存在隐式转换,不走索引. 经过测试排查后,发现是类型varchar的字段, 我使用条件传入了数值型的值. 问题重现 首先我们先创建一张用户表test_ ...

  5. SQL中int类型与varchar类型的隐式转换

    如果你对SQL使用的经验不是足够丰富,如果你在SQL中解决的问题不够多,请认真看完本章,它可以让你避免一个很可能经常会犯的错误! 我们先创建一个测试表 create table #table1 ( i ...

  6. MySQL中varchar类型字段隐式转换造成多删除数据

    例如一个表中字段是varchar类型: desc test; +-------+-------------+------+-----+---------+----------------+ | Fie ...

  7. 从 ++[[]][+[]]+[+[]]==10? 深入浅出弱类型 JS 的隐式转换

    起因 凡是都有一个来源和起因,这个题不是我哪篇文章看到的,也不是我瞎几把乱造出来的,我也没这个天赋和能力,是我同事之前丢到群里,叫我们在浏览器输出一下,对结果出乎意料,本着实事求是的精神,探寻事物的本 ...

  8. 关于类类型的隐式类型转换

    1.若构造函数只接受一个实参,则它实际上定义了转换为此类类型的隐式转换机制,这种构造函数又称作转换构造函数. 2.能通过一个实参调用的构造函数定义了该参数类型向类类型隐式转换的规则.也就是说,若定义了 ...

  9. 字符串分隔 -连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组; •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。...

    •连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组: •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理. 输入描述: 连续输入字符串(输入2次,每个字符串长度小于100) 输 ...

最新文章

  1. 2018年英语计算机职称考试,2018年职称计算机考试报考指南大全
  2. Console-算法-一个偶数总能表示为两个素数之和
  3. SLAM笔记(五)光束平差法(Bundle Adjustment)
  4. hitTest:withEvent:方法流程
  5. c++带成员指针使用
  6. 【codeforces 711B】Chris and Magic Square
  7. js截取超链接后参数
  8. QT的QSvgGenerator类的使用
  9. 快速提高Python数据分析速度的八个技巧
  10. kotlin学习之解构声明(十二)
  11. 计算机软件申请专利的困难,对于一个软件系统,在中国现在可以申请专利吗?...
  12. 两个栈实现一个队列与两个队列实现一个栈
  13. image copy oracle,RMAN删除image copy时遇到的问题
  14. bigdecimal divide四舍五入_BigDecimal 四则运算
  15. 家庭安防监控设备搭建
  16. java string 数组 个数,Java - 定义一个接收String的方法,并返回一个整数数组,其中包含每个元音的数量...
  17. 万字长文入门 Redis 命令、事务、锁、订阅、性能测试
  18. Silverlight 4 or 5 安装步骤
  19. Python 测试题(覆盖了大多数的基础知识和进阶)
  20. 国务院发展研究中心发布《中国云计算产业发展与应用白皮书》| 附下载

热门文章

  1. WCBuffer合并写
  2. MySQL索引下推(5.6版本+)
  3. 为什么阿里巴巴Java开发手册中不允许用Executors去创建线程池?
  4. oracle常用函数api,Oracle-API OracleAPI、oracle10G函数大全(常用函数)、 联合开发网 - pudn.com...
  5. php发送https请求,php post 请求https接口
  6. 手机端展现table_百度信息流广告外包丨百度信息流广告的展现样式和收费方式?...
  7. 如何查看ddos 放开的ip
  8. 第一行代码学习笔记第八章——运用手机多媒体
  9. 【windows】CMake安装小结
  10. QML和C ++之间的数据类型转换---枚举