1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【SQL】文字列結合の方法

Posted at

SQLでの文字列結合に関する備忘録になります。
各DBMSごとに使用できる関数が異なりますが、今回はOracle向けの内容をまとめていきます。

1. Oracleでの文字列結合

 Oracleで文字列を連結したい場合、「||」演算子を使うか「CONCAT」関数を使います。ただ「CONCAT」関数の場合、3つ以上の文字列を連結した書き方が少しややこしいので、個人的には「||」演算子を使うことをおすすめします。

①「||」演算子の使い方

SQL> SELECT 'Hello' || 'World' as 文字列連結 FROM dual;

SQLの実行結果は下記になります。

文字列連結
--------------------
HelloWorld

また、「||」演算子では3つ以上の文字列を連結することが可能です。
やり方は2つの文字列を連結する場合と変わりません。

SQL> SELECT 'Hello' || 'World' || '!!' as 文字列連結 FROM dual;

SQLの実行結果は下記になります。

文字列連結
--------------------------
HelloWorld!!!

② CONCAT関数の使い方

 以下が「CONCAT」関数の基本的な構文になります。
CONCAT(string1,string2)

SQL> SELECT CONCAT('Hello', 'World') as 文字列連結 FROM dual;

SQLの実行結果は下記になります。

文字列連結
--------------------
HelloWorld

Oracleの「CONCAT」関数は、引数を2つしか指定することが出来ません。そのため、「CONCAT」関数で3つ以上の文字列を結合するには、以下のようにネストする必要があります。

SQL> SELECT CONCAT('Hello', CONCAT('World', '!!')) as 文字列連結 FROM dual;

SQLの実行結果は下記になります。

文字列連結
--------------------------
HelloWorld!!

ただし、上記で記載してある通り、Oracleには「||」演算子があるので、2つ以上の値の結合はこちらのほうが使い勝手がよく、コードも見やすくなります。

OracleのCONCAT関数でNULLを連結する場合、NULLは空文字列となって文字列が連結されます。

SQL> SELECT CONCAT('Hello', 'Null') as 文字列連結 FROM dual;

SQLの実行結果は下記になります。

文字列連結
--------------------------
Hello

まとめ

Oracleで文字列を結合するにはCONCAT関数や「||」演算子を使用します。
CONCAT関数は指定できる引数の数やNULLの扱いなど、DBMSによって仕様が異なります。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?