1

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

这是查询...

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

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

ORA-00905: missing keyword

我敢肯定,简单的解决方案,但有什么想法吗?

4

3 回答 3

3

连接字符串 -||

在甲骨文世界中'' is null= 真

于 2012-07-25T09:54:35.597 回答
3

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

SELECT table_name.*, 
       CASE 
         WHEN my_col IS NULL THEN '' 
         ELSE 'Blah blah ' || my_col 
      END AS my_col2 
FROM table_name
于 2012-07-25T10:33:30.943 回答
0

+不会在甲骨文中工作。使用 ||。也尝试列出所有列而不是 *

SELECT *,  
CASE my_col  
WHEN ''  
THEN ''  
ELSE 'Blah blah ' || my_col  
END AS my_col2  
FROM table_name 
于 2012-07-25T09:54:33.973 回答