当没有找到行时,是否可以强制查询中的reutrn值?

jav*_*ava 3 sql postgresql

我有一个简单的查询:

Select qty from X where id=....;
Run Code Online (Sandbox Code Playgroud)

此查询始终返回0或1行.当它返回1行时一切正常.但如果它返回0行,我的查询将失败,因为qty在计算中使用.(这是Select statment中的Sub查询).

我需要以某种方式确保查询始终返回1行.

我试过了:

Select coalesce(qty,0) from X where id=....;
Run Code Online (Sandbox Code Playgroud)

但它没有帮助,好像没有行,合并是没用的.如果没有发现它应该给出的行0

我该如何解决?

Ela*_*lad 10

你可以这样做:

SELECT COALESCE( (SELECT qty from X where id=....), 0)
Run Code Online (Sandbox Code Playgroud)

如果内部SELECT声明没有返回任何内容,COALESCE则会0在外部SELECT声明中给出.