Mysql SQL命令默认值
在我的mssql命令中,我想得到C.HEIGHT值的总和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
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文档的快速链接: