关于SQL查询结果为空,要求输出null作为结果显示

2018/03/11 Sql

做了一道题,要求返回排名第二的取出来,若没有则必须返回NULL,且指定列名c

上一篇记录里我写了方法,但是这个返回null,是个大坑啊

比如:

表b

id a
1 0.2
2 0.5

a=1的记录不存在,以下查询返回结果必然为null,

select a from b where a =1

它显示如下:

null

那么结果就是为空表啊,就是null啊,可是怎么把这个null显示出来!

实际工作中,可能这个操作没什么意义!但这是个问题~

若这么操作则可解决:

select null as c

它显示如下:

  • c  
    0 null

若把null换成select语句即可,

注意此方法只适合唯一值的情况!

同时部分函数的返回值也不一样:

max、min、max在没有记录时会返回null值

而ifnull则返回空值,而不是null值,是不是很奇怪!

而count则返回0,还能不能统一了?

“is not null “ 和 “!=null”

在筛选非空的字段经常会用到”is not null”和”!=null”,但是这两种方法是不一样的!!!!Why?????而”null” 表示什么也不是, 用“=、>、< …” 所有的判断,结果都是false,所有只能用 is null进行判断。

默认情况下,推荐使用 IS NOT NULL去判断,因为SQL默认情况下对。”!= Null”的判断会永远返回0行,但没有语法错误。

如果你一定想要使用”!= Null”来判断,需要加上这个语句:“set ANSI_NULLS off”这时你会发现“IS NOT NULL” 和 “!= null” 是等效的。

Show Disqus Comments

Search

    欢迎关注我的微信公众号

    闷骚的程序员

    Table of Contents