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

concat文字列-||

オラクルの世界では'' is null=true

于 2012-07-25T09:54:35.597 に答える
3

オラクルでは、空の文字列は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
于 2012-07-25T10:33:30.943 に答える
0

+Oracleでは機能しません。||を使用します。また、*の代わりにすべての列をリストしてみてください

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