Ron*_*yen 0 mysql sql sql-server oracle db2
我希望有一个SELECT语句,如果没有从数据库返回任何行,将返回指定的默认值.
我们可以使用UNION来获得所需的结果,例如:" 如何为不返回行的查询设置默认行? ",但这会产生额外的结果行.
例:
SELECT a
from TBL_TEST
UNION
SELECT 0
FROM DUAL
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法,或者标准的SQL方法可以跨多个数据库引擎移植?
SELECT ifnull(a,20) FROM TBL_TEST
Run Code Online (Sandbox Code Playgroud)
如果a为null则选择20,否则选择a(在mysql中,不确定其他)
对于便携式解决方案,如何:
select coalesce(a, 0)
from TBL_TEST
right outer join DUAL on null is null
Run Code Online (Sandbox Code Playgroud)
此处使用COALESCE功能,因为它比NVL()或IFNULL()更便携.
您将在数据库系统中创建一个使用不同名称的DUAL表,例如SQL Server或DB2.
| 归档时间: |
|
| 查看次数: |
14996 次 |
| 最近记录: |