我有一个视图,它使用last_name || ', ' || first_name person_name
将两个name字段连接成一个name字段。问题是我们的数据库有许多行,其中一个或两个字段都为空。当发生这种情况时,如果其中一个名称字段为空,我们将以单个逗号(两个名称都为空)或不合适的逗号结束。
我该如何处理这种情况?理想情况下会发生以下情况:如果两个字段都为空,则将结果字段保留为空。不显示逗号。如果其中一个字段为空,则不显示逗号。显示非空字段。
发布于 2015-12-02 23:00:52
试一试:
SELECT last_name
||
CASE
WHEN last_name IS NULL
OR first_name IS NULL
THEN NULL
ELSE ', '
END
|| first_name
FROM <your table>
发布于 2015-12-02 23:40:47
SELECT last_name
||
CASE CONCAT(first_name , person_name) as fullname
WHEN NULL
THEN NULL
ELSE
CONCAT(',',fullname)
END
from ...
发布于 2015-12-03 10:59:13
尝试NVL2() http://www.techonthenet.com/oracle/functions/nvl2.php
select nvl2(last_name, first_name||', '||last_name, first_name) as person_name
from ...;
如果first_name为null,则此示例将返回last_name。
https://stackoverflow.com/questions/34054611
复制相似问题