我有一个查询,如下所示。
select a.ab as new from tab a inner join tab b on a.ab=b.ab
当我尝试运行它的显示时。
MySQL returned an empty result set (i.e. zero rows).
因为所选条件没有行。
我需要的实际输出是。
new
----
NULL
所以我尝试在下面添加此查询。
select COALESCE(a.ab,'') as new from tab a inner join tab b on a.ab=b.ab
还在给予
MySQL returned an empty result set (i.e. zero rows).
那么当MYSQL返回空set时,如何显示NULL值。任何帮助赞赏。
答案 0 :(得分:1)
您可以使用Outer select
。如果您希望在0行的情况下从数据库中获得实际Outer select
值,则使用NULL
封装查询,
SELECT
(
SELECT a.ab
FROM
tab a INNER JOIN tab b
ON a.ab=b.ab
) As New;
您可以使用UNION ALL
和LIMIT
替代方案
如,
SELECT a.ab
FROM
tab a INNER JOIN tab b
ON a.ab=b.ab
UNION ALL
SELECT NULL
LIMIT 1
答案 1 :(得分:0)
如果您希望在有0行时结果为null,请尝试以下语句:
IF EXISTS (SELECT 1 FROM TAB AS A INNER JOIN TAB AS B ON A.AB = B.AB )
BEGIN
SELECT A.AB AS NEW FROM TAB AS A INNER JOIN TAB AS B ON A.AB = B.AB
END
ELSE
BEGIN
SELECT NULL AS NEW
END
答案 2 :(得分:0)
为了返回null而不是空结果,请尝试以下操作:
select (select a.ab as new from tab a inner join tab b on a.ab=b.ab);
如果您需要将结果列命名为new,请在末尾添加一个新列:
select (your entire mysql query) new;
说明:
从中选择不符合标准的SQL。但是,它可以在许多数据库中使用。
某些数据库(例如oracle)需要from dual
。
如果没有引用表(reference),MySQL不需要FROM DUAL。
如果没有行,则选择没有from子句的选择将返回null。