Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL命令默认值_Mysql_Sql_Default Value - Fatal编程技术网

Mysql SQL命令默认值

Mysql SQL命令默认值,mysql,sql,default-value,Mysql,Sql,Default Value,在我的mssql命令中,我想得到C.HEIGHT值的总和 SELECT SUM(C.HEIGHT) FROM CIHAZ AS C INNER JOIN ILISKI AS I ON I.REL_CIHAZ=C.ID WHERE I.REL_DOLAP=2 这个值返回NULL,但我想给sumC.HEIGHT指定默认值 我们如何提供这一点 谢谢。如果列值为空,请使用COALESCE提供默认值,如下所示: SELECT COALESCE(SUM(C.HEIGHT), yourdefa

在我的mssql命令中,我想得到C.HEIGHT值的总和

 SELECT SUM(C.HEIGHT) 
 FROM CIHAZ AS C 
 INNER JOIN ILISKI AS I ON I.REL_CIHAZ=C.ID 
 WHERE I.REL_DOLAP=2
这个值返回NULL,但我想给sumC.HEIGHT指定默认值

我们如何提供这一点

谢谢。

如果列值为空,请使用COALESCE提供默认值,如下所示:

SELECT COALESCE(SUM(C.HEIGHT), yourdefaultvalue)
FROM CIHAZ AS C 
INNER JOIN ILISKI AS I ON I.REL_CIHAZ=C.ID 
WHERE I.REL_DOLAP=2
COALESCE是ANSI标准函数,您可以按照上面在MySQL、Oracle和SQL Server中所示的方式使用它。

如果列值为空,请使用COALESCE提供默认值,如下所示:

SELECT COALESCE(SUM(C.HEIGHT), yourdefaultvalue)
FROM CIHAZ AS C 
INNER JOIN ILISKI AS I ON I.REL_CIHAZ=C.ID 
WHERE I.REL_DOLAP=2
COALESCE是一个ANSI标准函数,您可以按照上面在MySQL、Oracle和SQL Server中所示的方式使用它。

正如shree.pat18所说,您可以用COALESCE内联替换任何空值

尽管如此,根据SQL标准,除非完全没有匹配行,否则在聚合期间将忽略空值,如下所述:

如果没有匹配行,SUM返回NULL

这意味着您不需要这样做:

select sum(coalesce(c.height, 0))....
以防万一你或其他人想知道

因此,一个围绕整个查询的联合就可以做到这一点,正如不信者Damien_所示

select coalesce(<query goes here>, 0)....
正如shree.pat18所说,可以用coalesce替换任何空值

尽管如此,根据SQL标准,除非完全没有匹配行,否则在聚合期间将忽略空值,如下所述:

如果没有匹配行,SUM返回NULL

这意味着您不需要这样做:

select sum(coalesce(c.height, 0))....
以防万一你或其他人想知道

因此,一个围绕整个查询的联合就可以做到这一点,正如不信者Damien_所示

select coalesce(<query goes here>, 0)....
您可以使用,但是,由于要聚合所有结果,可能会因为没有行而得到NULL。在这种情况下,您需要将整个查询包装为一个子查询,以使COALESCE按照我们希望的方式进行操作:

SELECT COALESCE( 
(SELECT SUM(C.HEIGHT) 
 FROM CIHAZ AS C 
 INNER JOIN ILISKI AS I ON I.REL_CIHAZ=C.ID 
 WHERE I.REL_DOLAP=2),
0 /* <-- default */) as Result
您可以使用,但是,由于要聚合所有结果,可能会因为没有行而得到NULL。在这种情况下,您需要将整个查询包装为一个子查询,以使COALESCE按照我们希望的方式进行操作:

SELECT COALESCE( 
(SELECT SUM(C.HEIGHT) 
 FROM CIHAZ AS C 
 INNER JOIN ILISKI AS I ON I.REL_CIHAZ=C.ID 
 WHERE I.REL_DOLAP=2),
0 /* <-- default */) as Result

默认值是什么?在TSQL中可以是ISNULLSUMC.HEIGHT,0默认值是什么?在TSQL中可以是ISNULLSUMC.HEIGHT,0合并MySQL文档的快速链接:合并MySQL文档的快速链接: