SELECT SUM(ISNULL(COU.CoursePrice, 0)) AS aa FROM hrflagwxsp.dbo.CourseInfo COU WITH(NOLOCK) JOIN dbo.OrderListInfo ORD ON ORD.CourseInfoId=COU.CourseId WHERE COU.IsDelete=0 AND ORD.IsDelete=0 AND ORD.PayTime<>'1900-01-01 00:00:00.000' 查出为空默认为0
时间: 2024-03-28 14:38:48 浏览: 31
是的,这个查询语句中使用了 ISNULL() 函数,它的作用是将 NULL 值转换成 0。如果查询结果为空,则 SUM() 函数将返回 0。因此,如果在 hrflagwxsp.dbo.CourseInfo 和 dbo.OrderListInfo 表中没有符合条件的记录或者它们的 CoursePrice 字段值都为 NULL,那么查询结果将是 0。
相关问题
SELECT SUM(ISNULL(COU.CoursePrice, 0)) AS aa FROM hrflagwxsp.dbo.CourseInfo COU WITH(NOLOCK) JOIN dbo.OrderListInfo ORD ON ORD.CourseInfoId=COU.CourseId WHERE COU.IsDelete=0 AND ORD.IsDelete=0 AND ORD.PayTime<>'1900-01-01 00:00:00.000'
这是一个 SQL Server 查询语句,它使用 SUM() 函数在 hrflagwxsp.dbo.CourseInfo 和 dbo.OrderListInfo 表中计算课程价格的总和。查询语句中的 ISNULL() 函数用于将 NULL 值转换为零,以便在计算总和时不会出现 NULL 值。查询语句中的 JOIN 子句用于将 hrflagwxsp.dbo.CourseInfo 表和 dbo.OrderListInfo 表连接起来,以便获取课程信息和订单信息。WHERE 子句用于过滤掉已删除的课程和订单,并且筛选支付时间不等于 '1900-01-01 00:00:00.000' 的订单。最后,查询语句使用 AS 关键字将计算出的总和命名为 aa。
SELECT @strSql+=' COU.IsDelete=0 AND HR.IsDelete=0 AND TR.IsDelete=0 AND ORD.PayTime<>'1900-01-01 00:00:00.000''
在这段代码中,你需要对单引号进行转义,以便 SQL Server 能够正确地解析字符串中的单引号。
你可以使用两个单引号来代替一个单引号,或者使用反斜杠(\)来转义单引号。
例如,你可以这样修改代码:
```
SELECT @strSql += ' COU.IsDelete=0 AND HR.IsDelete=0 AND TR.IsDelete=0 AND ORD.PayTime <> ''1900-01-01 00:00:00.000'' '
```
在上面的代码中,两个单引号被用来代替一个单引号。这样,SQL Server 就可以正确地解析字符串中的单引号了。
或者,你也可以使用反斜杠来转义单引号,例如:
```
SELECT @strSql += ' COU.IsDelete=0 AND HR.IsDelete=0 AND TR.IsDelete=0 AND ORD.PayTime <> \'1900-01-01 00:00:00.000\' '
```
在上面的代码中,反斜杠被用来转义单引号。这样,SQL Server 也可以正确地解析字符串中的单引号了。
阅读全文