SQL Server ISNULL 不生效原因及解决
目录
- SQL Server ISNULL 不生效原因
- 问题
- 原因
- 解决方法
- SQL Server ISNULL 真是个坑,CPU飙升90% +
SQL Server ISNULL 不生效原因
数据库:SQL Server 2008 R2
原始SQL:historyval 字段没有数据显示为NULL,用ISNULL判断为NULL的时候替换为 0.0
SELECT ISNULL(historyval, 0.0) FROM ce_bf_l_energyh_t_2 WHERE tagname = '123'
问题
用ISNULL只后数据依旧为NULL并没有替换掉。
原因
ISNULL只作用于查询出数据后字段为NULL可以替换生效、如果查询的时候这条数据本身为NULL、字段替换时ISNULL则不生效。
解决方法
先用 if exists(结果集)判断这条数据是否存在(也就是说这条select这条sql有没有结果集),BEGIN 表示语句块的开始;END 表示语句块的结束(加不加 BEGIN END 代码块都可以)。
如果满足条件直接在下方写 SQL。
不满足条件时,则在 ELSE 下方写 SQL。如此,数据进行了替换。
IF EXISTS ( SELECT ISNULL(historyval, 0.0) FROM ce_bf_l_energyh_t_2 WHERE tagname = '123' ) BEGIN --如果存在 SELECT ISNULL(historyval, 0.0) FROM ce_bf_l_energyh_t_2 WHERE tagname = '123' END ELSE BEGIN --如果不存在 SELECT 0.0 END
SQL Server ISNULL 真是个坑,CPU飙升90% +
- table1大概1100多万数据
- table2大概80多万数据
MES系统,使用了以下SQL语句,并且这个语句每分钟终端会并发执行一次(大概30个客户端)
SELECT AA.id FROM table1 aa LEFT JOIN table2 bb ON bb.No= aa.No WHERE
--就下面这句,把服务器CPU干到90%多
isnull( aa.fanCode,'0')!='0'
修改为 :aa.fanCode IS NOT NULL 后CPU回到个位数。
总结:尽量少用isnull()函数,就算用也尽量不用在where后面。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
sqlserver isnull在数据库查询中的应用
isnull在数据库查询中的应用,特别是再语句连接的时候需要用到 比如连接时候,某个字段没有值但是又要左连接到其他表上 就会显示空, isnull可以判断是否是NULL,如果是给个默认值 isnull("字段名","默认的数据") SqlServer中的null值与IsNull函数NULL 值的三大特点,分别是:1)NULL值不参加统计:2)NULL值不进入计算表达式:3)不能与其它值进行比较. 所谓NULL值不参加统计 即 在使用统计函数时,凡是涉及到 NULL值
-
在SQL Server中使用ISNULL执行空值判断查询
有如下查询: 复制代码 代码如下: select isnull(lastchanged,'') as lastchanged from vhhostlist where s_comment='test202' 本来,ISNULL函数只有一个参数,它表示的含义就是判断这个参数的值是否为NULL,是NULL则返回TRUE,否则返回FALSE: 但是,在SQLServer的查询语句中,isnull需要两个参数,它的含义是如果参数1为NULL,则以参数2为isnull函数的返回值: 即,上面查询的的含义
-
SQL中的ISNULL函数使用介绍
ISNULL 使用指定的替换值替换 NULL. 语法 ISNULL ( check_expression , replacement_value ) 参数 check_expression 将被检查是否为 NULL的表达式.check_expression 可以是任何类型的. replacement_value 在 check_expression 为 NULL时将返回的表达式.replacement_value 必须与 check_expresssion 具有相同的类型. 返回类型 返回与 c
-
MySql中 is Null段判断无效和IFNULL()失效的解决方案
MySql Null字段判断,和IFNULL失效的处理 ps:(不想看过程就直接把你的sql外边加上 一个select就好了) select a,b,c from table group by a,b,c //这时候a,b,c 如果判断null不管用 select IFNULL(a,0),IFNULL(b,0),IFNULL(3,0) from (select a,b,c from table group by a,b,c ) //这样就好啦 不说废话举个栗子,首先看一下这个很简单的表 当我使用
-
SQL Server ISNULL 不生效原因及解决
目录 SQL Server ISNULL 不生效原因 问题 原因 解决方法 SQL Server ISNULL 真是个坑,CPU飙升90% + SQL Server ISNULL 不生效原因 数据库:SQL Server 2008 R2 原始SQL:historyval 字段没有数据显示为NULL,用ISNULL判断为NULL的时候替换为 0.0 SELECT ISNULL(historyval, 0.0) FROM ce_bf_l_energyh_t_2 WHERE t
-
sql server 2008数据库无法启动的解决办法(图文教程)
事故起因: 之前使用SQL Server2008+VS2010开发,安装VS2012后数据库忽然无法连接 发现SQL Server配置管理器显示远程过程调试失败 原因&对策: VS2012中自带的Local DB和Server2008冲突 在添加和删除程序中删除"Microsoft SQL Server 2012Local DB"后问题应该解决 祸不单行: 远程过程调试失败后出现了"请求失败或服务未及时响应",服务仍旧无法启动 数据库服务无法启动的常见原因:
-
SQL Server 2008 R2登录失败的解决方法
为大家分享SQL Server 2008 R2登录失败的解决方法 1.启动SQL Server 2008 Management Studio,会看到 2.里面有一个 身份验证.这个 身份验证 的下拉列表里面有两个选项: Windows 身份验证 和 SQL Server 身份验证. 它们有什么区别: Windows 身份验证是指:你可以使用你电脑Windows系统的用户名和密码进行登入.如果你的电脑没有设置密码,那么就不需要输入用户名和密码,直接点击连接就可以登入. 我们一般使用第二种身份验证:
-
微信小程序中hidden不生效原因的解决办法
微信小程序中hidden不生效原因的解决办法 例如如下布局: <view hidden="true" style="display:flex;flex-direction: row;"> <text>text1</text> <text>text2</text> </view> 你会发现hidden没生效.经我实验发现hidden元素对块状布局才生效,所以这段代码里导致hidden没生效的罪魁祸
-
SQL Server出现System.OutOfMemoryException异常的解决方法
今天在用SQL Server 2008执行一个SQL脚本文件时,老是出现引发类型为"System.OutOfMemoryException"的异常错误,脚本明明是从SQL Server 2008导出的,应该不会出错,研究了好久问题才得以解决. 出现这个错误的主要原因是由于SQL脚本文件太大,估计超过了100M了,解决方法就是把脚本文件分成几个脚本文件,分别去执行即可. 来自微软官方的解决方案: 原因: 因为计算机没有足够的内存来完成请求的操作,则会出现此问题. 在 SQL Server
-
SQL Server无法生成FRunCM线程的解决方法
SQL Server 无法生成 FRunCM 线程.数据库错误日志如下: 复制代码 代码如下: 2013-09-26 21:21:50.31 Server Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86)Oct 14 2005 00:33:37 Copyright (c) 1988-2005 Microsoft CorporationEnterprise Edition on Windows NT 5.2 (Build 3790:
-
win2008 r2 安装sql server 2005/2008 无法连接服务器解决方法
在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接. 在使用G2服务时,测试服务器连接,结果遇到这个问题. 问题详细:连接测试失败!:在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接. (provider: 命名管道提供程序, error: 40 - 无法打开到
-
jsp 连接sql server 2008 连接不上的解决方法
1.首先是如果你遇到javax.servlet.ServletException: java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver这个错误, 那么估计你应该把Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 改成Class.forName("com.microsoft.sqlserver.jd
-
在SQL Server中实现最短路径搜索的解决方法
开始这是去年的问题了,今天在整理邮件的时候才发现这个问题,感觉顶有意思的,特记录下来. 在表RelationGraph中,有三个字段(ID,Node,RelatedNode),其中Node和RelatedNode两个字段描述两个节点的连接关系:现在要求,找出从节点"p"至节点"j",最短路径(即经过的节点最少). 图1. 解析: 了能够更好的描述表RelationGraph中字段Node和 RelatedNode的关系,我在这里特意使用一个图形来描述,如图2. 图2
-
SQL Server 2000“设备激活错误”的解决方法
数据库中对数据的操作是一大重要技能,其中,数据的恢复和还原也是常做的事.不知你是否在数据库恢复时遇到诸如"设备激活错误,请使用with move选项来标志该文件的有效位置"的错误信息提示?不知你在还遇到这样的情况:还原数据库时, 发现在企业管理器中,操作:所有任务-->还原数据库-->选择"从设备"还原,找到备份文档路径,强制还原.报错:设备激活错误,请使用with move选项来标志该文件的有效位置.本文将为你讲解出现这个错误应如何解决. 解决方法:右
随机推荐
- 零基础易语言入门教程(六)之逻辑型命令
- iOS 10 推送高阶篇(必看)
- 适用于WebForm Mvc的Pager分页组件C#实现
- 推荐一款MAC OS X 下php集成开发环境mamp
- php 删除目录下N分钟前创建的所有文件的实现代码
- 一个ASP小马
- Docker多容器连接(以Tomcat+Mysql为例)
- 原生js ActiveXObject获取execl里面的值
- 使用HTML5+Boostrap打造简单的音乐播放器
- Java数据结构及算法实例:快速计算二进制数中1的个数(Fast Bit Counting)
- Android 自定义SeekBar动态改变硬件音量大小实现和音量键的同步(推荐)
- MUI顶部选项卡的用法(tab-top-webview-main)详解
- jQuery使用removeClass方法删除元素指定Class的方法
- JS实现中文汉字按拼音排序的方法
- 一个不错的渐隐文字效果第1/2页
- SQL Server 安全系统的改进
- 初学者Android studio安装图文详解
- python实现神经网络感知器算法
- springboot config 拦截器使用方法实例详解
- Python利用WMI实现ping命令的例子