使用文本预先添加Oracle SQL结果

时间:2012-07-25 09:52:27

标签: sql oracle oracle-sqldeveloper

我有一个查询,我在检查结果是否为空(''而不是NULL),如果不是,那么我想在结果前添加一些文字。

这是查询...

SELECT *, 
CASE my_col 
WHEN '' 
THEN '' 
ELSE 'Blah blah ' + my_col 
END AS my_col2 
FROM table_name

我回来的错误看起来像这样......

ORA-00905: missing keyword

简单的解决方案我确定,但有任何想法吗?

3 个答案:

答案 0 :(得分:3)

concat string - ||

在oracle world '' is null = true

答案 1 :(得分:3)

在oracle中,空字符串为null,因此条件WHEN ''永远不会为真。您需要检查NULL

SELECT table_name.*, 
       CASE 
         WHEN my_col IS NULL THEN '' 
         ELSE 'Blah blah ' || my_col 
      END AS my_col2 
FROM table_name

答案 2 :(得分:0)

+在Oracle中不起作用。使用||。同时尝试列出*

的所有列
SELECT *,  
CASE my_col  
WHEN ''  
THEN ''  
ELSE 'Blah blah ' || my_col  
END AS my_col2  
FROM table_name