2.1
查询结果
2.2
(1)返回为空,正确应为is null;
(2)返回为空,正确应为is not null;
(3)返回为空
=null,<>null,>null,<null都会判断为unknown
2.3
2.4
查询结果
2.5
将表用group by分组之后,应该用having对分组数据进行筛选
正确顺序是from-where-group by-having
2.6
2.7
首先对最终排列结果进行观察,发现regist_date是按照降序排列,所以先尝试如下运行:
排序结果如下:
可以看到regist_date为null的行被排到了最后,并且regist_date为2009-09-20的三行排列顺序与最终结果不符。
解决第一个问题可以利用isnull(),当regist_date为null时,isnull(regist_date)的返回值为1;当regist_date不为null时,isnull(regist_date)的返回值为0,再利用order by进行降序排序。解决第二个问题观察最终结果,可以看出sale_price进行了升序排列。
综上,修正之后的代码如下: