-- 首先在用户表中插入数据如下

TRUNCATE TABLE UserInfo ;

INSERT INTO userinfo(UserName,UserLogin,UserPassword,UserEmail,UserType)

VALUES ('张三','zhangsan','zhangsan','zhangsan@qq.com',1),

('李四','lisi','lisi','lisi@qq.com',2),

('王五','wangwu','wangwu','wangwu@qq.com',1),

('赵六','zhaoliu','zhaoliu','zhaoliu@qq.com',3),

('赵六','zhaoliu1','zhaoliu1','zhaoliu1@qq.com',3),

(NULL,'test1','test1',NULL,NULL),

(NULL,'test2','test2',NULL,NULL),

(NULL,'test3','test3',NULL,NULL),

('','TEST5','TEST5','',1),

('','TEST6','TEST6','',2),

('','TEST7','TEST7','',3),

('','TEST8','TEST8','',1),

('','EST9','TEST9','',2),

('','TEST0','TEST0','',3);

select * from userInfo

-- 查询用户名为空(null)的用户信息 isnull(UserName) 此方法不可用,mysql可以使用

SELECT * FROM UserInfo WHERE userName IS NULL ;

-- 查询用户名为空字符串('') 的用户信息

SELECT * FROM UserInfo WHERE UserName ='' ;

-- 查询用户名为 不为空(null)的用户信息 !=null 和 is not null 是不同的 默认情况下 !=null 返回0行结果

筛选非空的时候经常会用到is not null和!=null,这两种方法单从字面上来看感觉是差不多的,其实运行结果差别很大!

null 表示什么也不是, 不能=、>、< … 所有的判断,结果都是false,所有只能用 is null进行判断。默认情况下,推荐使用 is not null去判断,因为SQL默认情况下对 !=null 的判断会永远返回0行,但没有语法错误;

SELECT * FROM UserInfo WHERE userName IS NOT NULL ;

SELECT * FROM UserInfo WHERE UserName != NULL ;

-- 查询用户名 不为空字符串('') 并且不为空(null) 的用户信息

SELECT * FROM UserInfo WHERE UserName <> '' ;

-- 还有一个问题就是count(columnName)函数是不统计null值的

SELECT COUNT(*) FROM UserInfo ;

SELECT COUNT(UserName) FROM UserInfo ;

-- Isnull函数使用 此处和 mysql中IFNULL函数类型

-- Isnull(expr1,expr2) 如果expr1不是NULL,返回expr1,否则它返回expr2。

SELECT *,isnull(UserName,'无效用户') AS Remark FROM UserInfo

SELECT isnull(0,1) ;

MS SQL Server NULL处理的更多相关文章

  1. MS SQL Server中数据表、视图、函数/方法、存储过程是否存在判断及创建

    前言 在操作数据库的时候经常会用到判断数据表.视图.函数/方法.存储过程是否存在,若存在,则需要删除后再重新创建.以下是MS SQL Server中的示例代码. 数据表(Table) 创建数据表的时候 ...

  2. MS SQL Server2014链接MS SQL Server 2000

    开发与企业应用中,好几个版本SQL Server相互链接.分布式读取与存储,需要实现sp_addlinkedserver.SQL Server 2000, SQL Server 2008, SQL S ...

  3. MS SQL SERVER 中的系统表

    MS SQL SERVER 中的系统表 序号 名称 说明 备注 1 syscolumns 每个表和视图中的每列在表中占一行,存储过程中的每个参数在表中也占一行.   2 syscomments 包含每 ...

  4. (火炬)MS SQL Server数据库案例教程

    (火炬)MS SQL Server数据库案例教程 创建数据库: CREATE DATABASE TDB //数据库名称 ON ( NAME=TDB_dat,//逻辑文件名 在创建数据库完成之后语句中引 ...

  5. (转载)MS SQL Server 未公开的加密函数有哪些?

    MS SQL Server 未公开的加密函数有哪些? 以下的文章是对MS SQL Server 未公开的加密函数的具体操作,如果你对其相关的实际操作有兴趣的话,你就可以点击了. MS SQL Serv ...

  6. Display Database Image using MS SQL Server 2008 Reporting Services

    原文 Display Database Image using MS SQL Server 2008 Reporting Services With the new release of MS SQL ...

  7. Oracle\MS SQL Server Update多表关联更新

    原文:Oracle\MS SQL Server Update多表关联更新 一条Update更新语句是不能更新多张表的,除非使用触发器隐含更新.而表的更新操作中,在很多情况下需要在表达式中引用要更新的表 ...

  8. MS SQL SERVER 2008 使用OBJECT_ID判断临时表是否存在

    MS SQL SERVER 2008 使用OBJECT_ID判断临时表是否存在 我们在写sql 脚本的时候经常会用到临时表,有时间也需要根据临时表是否存在做一些逻辑处理.还好sql server已经集 ...

  9. MS SQL Server数据库修复/MDF数据文件数据恢复/MDF质疑/mdf无法附加

    微软的SQL Server 数据库最常用的有两种类型的文件: 1.主要数据文件,文件后缀一般是.MDF: 2.事务日志文件,文件后缀一般是.LDF. 用户数据表.视图.存储过程等等数据,都是存放在MD ...

随机推荐

  1. Scratch不仅适合小朋友,程序员和大学老师都应该广泛使用!!!

    去年接触到了Scratch这个编程工具,它是一种简易图形化编程工具,这个软件的开发团队来自于麻省理工大学称为“终身幼儿园团队”(Lifelong Kindergarten Group). 网址http ...

  2. 关于H5页面中生成图片的两种方式!

    前言: 我们在做项目过程中,经常会遇到自定义生成一张图片并可以长按保存.长按保存图片在微信等浏览器中默认就有,那么对于生成图片的有哪些方式呢? 方法一: 利用canvas绘制图形,然后生成图片 代码如 ...

  3. Java中NIO和IO区别和适用场景

    NIO是为了弥补IO操作的不足而诞生的,NIO的一些新特性有:非阻塞I/O,选择器,缓冲以及管道.管道(Channel),缓冲(Buffer) ,选择器( Selector)是其主要特征. 概念解释: ...

  4. Flutter之List

    void listDemo() { // 1.list的创建 listCreate(); // 2.多种类型的输出 listPrint(); // 3.添加数据 listAddElement(); / ...

  5. springboot aop 自定义注解

    枚举类: /** * Created by tzq on 2018/5/21. */ public enum MyAnnoEnum { SELECT("select"," ...

  6. Python——sys模块

    七.sys模块 sys模块的常见函数列表 sys.argv: 实现从程序外部向程序传递参数. sys.exit([arg]): 程序中间的退出,arg=0为正常退出. sys.getdefaulten ...

  7. Quickstart: Embed a Power BI Report Server report using an iFrame in SharePoint Server

    In this quickstart you will learn how to embed a Power BI Report Server report by using an iFrame in ...

  8. codeforces483B

    Friends and Presents CodeForces - 483B You have two friends. You want to present each of them severa ...

  9. OperationCenter Docker容器启动脚本

    docker rm -f OperationCenter rm -f /root/webapps/logs/* image_name="harbor.gfstack.geo/geostack ...

  10. 「洛谷3292」「BZOJ4568」「SCOI2016」幸运数字【倍增LCA+线性基+合并】

    [bzoj数据下载地址]不要谢我 先讲一下窝是怎么错的... \(MLE\)是因为数组开小了.. 看到异或和最大,那么就会想到用线性基. 如果不会线性基的可以参考一下我的学习笔记:「线性基」学习笔记a ...