File tree Expand file tree Collapse file tree 2 files changed +5
-5
lines changed
Expand file tree Collapse file tree 2 files changed +5
-5
lines changed Original file line number Diff line number Diff line change @@ -438,10 +438,10 @@ select * from tbl where reverse(col) ~ '^def'; -- 后缀查询使用反转函
438438
439439
440440### QUERY 规范
441- 【强制】不要使用count(列名)或count(常量)来替代count(* ),count(* )就是SQL92定义的标准统计行数的语法,跟数据库无关,跟NULL和非NULL无关。
442- 说明:count(* )会统计NULL值(真实行数),而count(列名)不会统计。
441+ 【强制】不要使用count(列名)或count(常量)来替代count(``` * ``` ),count(``` * ``` )就是SQL92定义的标准统计行数的语法,跟数据库无关,跟NULL和非NULL无关。
442+ 说明:count(``` * ``` )会统计NULL值(真实行数),而count(列名)不会统计。
443443
444- 【强制】count(多列列名)时,多列列名必须使用括号,例如count( (col1,col2,col3) )。注意多列的count,即使所有列都为NULL,该行也被计数,所以效果与count(* )一致。
444+ 【强制】count(多列列名)时,多列列名必须使用括号,例如count( (col1,col2,col3) )。注意多列的count,即使所有列都为NULL,该行也被计数,所以效果与count(``` * ``` )一致。
445445例如
446446```
447447postgres=# create table t123(c1 int,c2 int,c3 int);
@@ -508,7 +508,7 @@ NULL值与任何值的比较都为NULL,即NULL<>1,返回的是NULL,而不
508508
509509【强制】除非是ETL程序,否则应该尽量避免向客户端返回大数据量,若数据量过大,应该考虑相应需求是否合理。
510510
511- 【强制】任何地方都不要使用 select * from t ,用具体的字段列表代替* ,不要返回用不到的任何字段。另外表结构发生变化也容易出现问题。
511+ 【强制】任何地方都不要使用 select ``` * ``` from t ,用具体的字段列表代替``` * ``` ,不要返回用不到的任何字段。另外表结构发生变化也容易出现问题。
512512
513513
514514### 管理规范
@@ -616,7 +616,7 @@ select f(id) from tbl where id=? and count>0;
616616可以再根据实际情况设计,原理如上即可。
617617函数可以如返回布尔,或者唯一ID,或者数字等。
618618
619- 【强制】在函数中,或程序中,不要使用count(* )判断是否有数据,很慢。 建议的方法是limit 1;
619+ 【强制】在函数中,或程序中,不要使用count(``` * ``` )判断是否有数据,很慢。 建议的方法是limit 1;
620620例如
621621```
622622select 1 from tbl where xxx limit 1;
You can’t perform that action at this time.
0 commit comments