下一个查询sql
select (sum(G325.G303MNTE) + sum(G325.G303MNTD)) as debito, G325.G303UUID as id
from GSCF325 G325
inner join GSCF300 G300 on G300.G300UUID = G325.G303UUID
where G325.G303IMVI = 'P'
and G325.G303DEL = ' ' and G325.G303DBCR='D' and G300.G300CTA = 1104070196
and trunc(G325.G303FEMI) = to_Date('2019/02/13','YYYY-MM-DD')
group by G325.G303UUID
结果它返回给我null
,对于这两种情况,以及DEBIT和ID,我已经确认用户是否存在于我进行比较的两个表中,如果它们存在,但我认为当返回空结果时,其他字段也为空。如果是这样,我的问题是如何将结果更改NULL
为另一个值。
您可以使用
coalesce()
e函数IsNull()
将一个空值替换为另一个空值。例如:
coalesce()
如果
coalesce()
它是我最喜欢的,因为它是 SQL 标准的一部分(这就是它存在于许多引擎中的原因),你可以发送N个参数,函数将返回第一个不为 null 的参数,例如:它将按照输入参数的顺序返回第一个不为空的字段的值。
null
如果它们都为空,它将返回。IsNull()
IsNull 是一个特定于 SQL Server 的函数,它采用两个参数。与合并类似,返回第一个非空值。
然后它将返回第一个不为空的字段的值,或者
null
如果两者都为空。我几乎可以肯定,问题在于你没有在 join 之前使用 left、right 或 full,它对这三个中的每一个都进行了一些盲测以查看结果,但你应该好好研究这些类型的联合是如何工作的. 这是非常总结的东西......:http ://www.tutorialesprogramacionya.com/oracleya/temarios/descripcion.php?cod=207&punto=1&inicio=