0、在 SQL 中,使用等号来比较值时,NULL 与任何其他值(包括 NULL 本身)进行比较的结果都是 UNKNOWN,而不是 true 或 false。
1、注意是小数还是百分比
2、注意有无至少
3、GROUP BY的大性质,真是大性质啊
4、用following是要加between的
sum(free = 1) OVER (ORDER BY seat_id ASC rows 1 following)【错】
sum(free = 1) OVER (ORDER BY seat_id ASC rows between 0 preceding and 1 following)【对】
5、min()函数不受NULL值影响
在使用`MIN()`函数时,如果被处理的列中包含NULL值,通常情况下不会引发错误。`MIN()`函数会忽略NULL值并计算非NULL值中的最小值。
6、LEAD()函数扩展
lead(x, 1, null)函数用于获取x列下一行的值(按照x列的顺序进行排序),如果下一行不存在则返回null。
7、mysql居然没有full join【震惊】
8、sum结合case when
9、count和sum用的时候注意区分
10、注意如果有NULL值的对比
id not in (select p_id from tree)时, 因为p_id有null值, 返回结果全为false, 于是跳到else的结果, 返回值为inner. 所以在答案中,leaf结果从未彰显,全被inner取代.
当你判断任意值a != null时, 官方说, "You cannot use arithmetic comparison operators such as =, <, or <> to test for NULL", 任何与null值的对比都将返回null. 因此返回结果为否,这点可以用代码 select if(1 = null, 'true', 'false')证实.
11、条件不相交的UNION 可以尝试case when
12、用count(id=1)不如用sum(id=1)