即使在使用后,Oracle nvl也无法处理空字符串

时间:2017-10-06 04:57:22

标签: sql oracle null

如果select查询返回null,我试图返回空字符串或虚拟字符串。我尝试在NVL(colum,'dummy')中使用虚拟值,但我仍然遇到no data found错误。 以下是我的尝试:

1。

  SELECT de.destination INTO l_sub_ent

  FROM dest de

  where de.destination='somevalue' AND de.destination IS NOT NULL; 

2。

  SELECT COALSECE(de.destination, 'dummy') INTO l_sub_ent

  FROM dest de

  where de.destination ='some value'; 

第3

  SELECT NVL(de.desc_en, 'dummy') INTO l_sub_ent

  FROM dest de

  where de.destination ='some value'; 

2 个答案:

答案 0 :(得分:2)

问题不在于de.destinationNULL。条件de.destination='somevalue'没有记录。处理这样的事情。

SELECT Count(1)
INTO   v_count
FROM   dest de
WHERE  de.destination='somevalue';

IF v_count > 0 THEN
  SELECT NVL(de.destination,'dummy')
  INTO   l_sub_ent
  FROM   dest de
  WHERE  de.destination='somevalue';
END IF; 

答案 1 :(得分:0)

我能够使用以下方法解决:

SELECT NVL(MIN(val), 'dummy') INTO l_sub_ent

  FROM dest de

  where de.destination ='some value';