発端
姓と名でカラムが分かれているテーブルから、
氏名として1カラムで出力したい時ちょっとハマったことがありました。
CONCAT関数を使用して、
SELECT CONCAT(last_name, first_name) FROM table;
とすると無事に下記のように表示されます。
氏名 |
---|
山田太郎 |
問題
ところが、姓と名の間にスペースを入れたいと思い
SELECT CONCAT(last_name, ' ', first_name) FROM table;
とすると ORA-00909: 引数の個数が無効です。
でエラーとなります。
他のDBMSですとこれで問題ないのですが、OracleではCONCAT関数の引数は2個までなんですね。
解決
調べたところ、Oracleでは下記の様にすることでも文字列連結ができ、無事に目的を達成できました。
SELECT last_name || ' ' || first_name FROM table;
氏名 |
---|
山田 太郎 |
ここら辺は統一してほしいですね…