DEFAULT()函数返回表列的默认值。
列的DEFAULT值是在这种情况下使用的值,没有用户指定的值。
为了使用此函数,应该为该列分配一个 DEFAULT 值。否则会产生错误。
句法:
DEFAULT ( column_name)
column_name: Name of column whose default value is written.
示例:考虑两个关系学生和结果–
表“学生”的结构-
Field | Type | Null | Default |
---|---|---|---|
sid | int(11) | YES | NULL |
sname | varchar(10) | YES | NULL |
subject | varchar(10) | YES | NULL |
marks | int(11) | YES | 0 |
表“结果”的结构-
Field | Type | Null | Default |
---|---|---|---|
lowest_marks | int(11) | YES | NULL |
lohighest_marks | int(11) | YES | NULL |
grade | varchar(5) | YES | FAIL |
表中数据——
Select * from student;
sid | sname | subject | marks |
---|---|---|---|
1 | aayushi | O.S | 89 |
2 | yogesh | D.A.A | 75 |
3 | chestha | T.O.C | 0 |
4 | manasvi | O.S | 60 |
5 | hardik | D.A.A | 99 |
6 | shanu | E.S.D | 35 |
Select * from result;
lowest_marks | highest_marks | grade |
---|---|---|
85 | 100 | A |
60 | 85 | B |
40 | 60 | C |
问题描述:我们要找到所有学生的结果-
询问:
Select sid, sname, subject, marks,
IF ( grade is NULL, DEFAULT ( grade ), grade )
AS grade FROM student LEFT JOIN result
ON marks > lowest_marks
AND marks < = highest_marks;
输出:
sid | sname | subject | marks | grade |
---|---|---|---|---|
1 | aayushi | O.S | 89 | A |
2 | yogesh | D.A.A | 75 | B |
3 | chestha | T.O.C | 0 | FAIL |
3 | chestha | T.O.C | 0 | FAIL |
4 | manasvi | O.S | 60 | C |
5 | hardik | D.A.A | 99 | A |
6 | shanu | E.S.D | 35 | FAIL |
说明:这里,default()函数用于返回默认等级,即“FAIL”。此默认值用于学生分数根据加入条件不匹配的地方。这些学生的成绩显示为 FAIL。
注意:带有 select 语句的默认函数将返回所有行的默认值。这意味着,我们将获得该列的默认值列表,而不是获得该列的单个默认值。
例如对于上面的表结果,查询的输出是-
Select default ( grade) from result;
输出:
default ( grade ) |
---|
FAIL |
FAIL |
FAIL |