如果select返回null,我需要返回一个值。但是我通过在子查询
中放置查询找到了解决方案hereSELECT COALESCE((SELECT id FROM tbl WHERE id = 9823474), 4) AS id FROM RDB$DATABASE;
上面的查询将返回Null
,因为表中不存在值9823474但我想在这种情况下返回一个值(对于ex 4)所以我找到了使用select子查询的唯一解决方案然后COALESCE
会起作用,如果我没有这样做COALESCE
也会返回Null
。
这是唯一的解决方案吗?
答案 0 :(得分:2)
不,这不是唯一的例子
Select first 1 id from (
Select id FROM tbl WHERE id = 9823474
Union All
Select 4 from rdb$database)
或者您可以使用匿名程序http://firebirdsql.su/doku.php?id=execute_block
EXECUTE BLOCK RETURNS ( id integer )
AS
BEGIN
IF ( EXISTS (SELECT * FROM tbl WHERE id = 9823474) )
THEN id = 9823474;
ELSE id = 4;
SUSPEND;
END
......那里总有很多方法