Sql 如果未找到记录,则返回空值

Sql 如果未找到记录,则返回空值,sql,plsql,oracle10g,Sql,Plsql,Oracle10g,请帮助我实现以下目标 select * from pmdl; PROPERTY_NAME VALUE ------------- ---------- profile 1010 ->>我得到了1010的值 从pmdl中选择*; 未选择任何行 select (select value from pmdl where property_name='profile') as value from dual; ->>如果记录不存在,我将得到空值 我必须在多个记录

请帮助我实现以下目标

select * from pmdl;

PROPERTY_NAME      VALUE
------------- ----------
profile             1010 
->>我得到了1010的值

从pmdl中选择*; 未选择任何行

select (select value from pmdl where property_name='profile') as value from dual;
->>如果记录不存在,我将得到空值

我必须在多个记录中实现同样的目标

PROPERTY_NAME      VALUE
------------- ----------
profile             1010 
profile             1020 

select (select value from pmdl where property_name='profile') as value from dual;
由于返回了多个记录,我的错误率越来越低

PROPERTY_NAME      VALUE
------------- ----------
profile             1010 
profile             1020 

select (select value from pmdl where property_name='profile') as value from dual;
ORA-01427:单行子查询返回多行 142700000-单行子查询返回多行 *原因: *行动:

如何检索多条记录。

请尝试以下方法:

PROPERTY_NAME      VALUE
------------- ----------
profile             1010 
profile             1020 

select (select value from pmdl where property_name='profile') as value from dual;
select value from pmdl where property_name='profile'
union
select max(value) from pmdl where property_name='profile'
如果pmdl没有';没有记录第二次查询将返回null


如果第一个查询返回一些数据,union将从第二个查询中删除重复的数据。

下面是一个示例,其中union中的第一个选择是返回一些数据。如果没有,则第二次选择将返回空值。外部选择仅强制其中一行返回。你每次都要吵架

SELECT TOP 1 WITH TIES tbl1.*
FROM (SELECT TOP 1 tnok1.TETNokCommID, tnok1.TETID, tnok1.LastSentDate
      FROM tblTETNOKcomms AS tnok1
      WHERE tnok1.TETID = 39
      UNION
      SELECT NULL, NULL, NULL) AS tbl1
ORDER BY 3 DESC

您想要什么结果?请正确解释以获得更好的答案。非常感谢..该子查询将始终只返回一行,因此它不需要是子查询-从pmdl中选择maxvalue,property_name='profile'将在其中执行。感谢您的回答。。但是我需要所有的值,除非选择行,否则它应该返回空值。。有没有其他方法可以达到这个目的我对这个完全陌生。。。在pl/SQL中实现这一点的任何其他方法,但我需要所有的值,除非选择行,否则它应该返回空值-用您希望得到的结果更新您的问题。。。。别忘了在问题中提供最新信息,而不是在评论中。