2016-08-31 2 views
1

oracle concat関数でcaseを実行するにはどうすればよいですか? 番号と番号に基づいて文字を連結したいと思います。すなわち、numberが1より大きい場合、私は他のものを追加しなくてはなりません。 以下のクエリを試しましたが、動作しません。オラクルでoracle concat関数でcaseを実行する方法は?

Select concat(count(*) , if count(*) > 1 then 's' else '') 
    from tablename 
    group by columnname; 

答えて

0

連結のため||を使用することをお勧めします、そして何ifはありませんが、case表現があります。 ||というソリューションをベストプラクティスとして表示しますが、concatを使用する必要がある場合は、同様に行うことができます。また、Oracleは数値をVARCHAR2に変換しますが、変換を明示的に記述することをお薦めします。

select to_char(count(*)) || case when count(*) > 1 then 's' end from .... 

NOTE - caseのデフォルト値は(OracleでNULLと同じ)''あるので、私はより多くを書く必要はありませんでした。

+0

to_char(count(*))を選択してください。 (*)> 1の場合職業別職業グループから 'aa'終了 * 1行目のエラー: ORA-00923:FROMキーワードが見つかりません –

+0

コピー&ペーストできますか? (テキストの行をコピーするだけでは難しいと思われるので)私は、Oracleに 'if'がないことを伝えました。あなたは 'いつ'を書いたのかを 'if'と書いた。あなたは今それを見ますか?そうでない場合は、コピーして貼り付けてください。誤って転記されることはありません。 – mathguy

+0

感謝しました.. –

関連する問題