主要なRDBMSのほとんどは、2つ以上の文字列を連結するためのいくつかのオプションを提供します。
-
CONCAT()
があります 引数を連結する関数。 -
CONCAT_WS()
もあります これにより、連結された文字列を区切る区切り文字を指定できます。 - また、オペランドを連結できる文字列連結演算子もあります。
以下は、各方法の例です。
CONCAT()
機能
ほとんどの主要なRDBMSは、CONCAT()
を提供します 文字列引数を連結するための関数。通常、文字列以外の引数は、連結が発生する前に文字列に変換されます。
例:
SELECT CONCAT('Bangkok', 'Breaking');
結果:
BangkokBreaking
この関数では、文字列の間にスペースを含める場合は、文字列の1つにスペースを追加するか、別の引数としてスペースを含める必要があります。
SELECT
CONCAT('Bangkok ', 'Breaking') AS "Option 1",
CONCAT('Bangkok', ' ', 'Breaking') AS "Option 2";
結果:
+------------------+------------------+ | Option 1 | Option 2 | +------------------+------------------+ | Bangkok Breaking | Bangkok Breaking | +------------------+------------------+
CONCAT()
を持つRDBMS 機能には、MySQL、MariaDB、SQL Server、Oracle、およびPostgreSQLが含まれます。
SQLiteにはCONCAT()
は含まれていません 機能しますが、します 文字列連結演算子があります(以下を参照)。
CONCAT_WS()
機能
文字列の間にスペースを含める別の方法は、CONCAT_WS()
を使用することです。 働き。この関数を使用すると、連結されたすべての文字列を区切るために使用される区切り文字を指定できます。
例:
SELECT CONCAT_WS(' ', 'Bangkok', 'Breaking');
結果:
Bangkok Breaking
この関数は、連結する文字列がたくさんある場合に特に便利です。
SELECT CONCAT_WS(', ', 'Red', 'Green', 'Orange', 'Blue');
結果:
Red, Green, Orange, Blue
このような場合、セパレータを指定する必要があるのは1回だけです。
CONCAT_WS()
を持つRDBMS 関数には、MySQL、MariaDB、SQL Server、およびPostgreSQLが含まれます。
SQLiteとOracleにはCONCAT_WS()
がありません 機能しますが、 文字列連結演算子があります(以下を参照)。
文字列連結演算子
ほとんどのRDBMSには、オペランドを連結する文字列連結演算子が含まれています。
SQLiteを使用している場合、これが唯一のオプションです。
例:
SELECT 'Spy' || 'craft';
結果:
Spycraft
MySQLでは、最初にパイプ連結演算子を有効にする必要があることに注意してください。
MariaDBについても同じことが言えます。
SQL Server
上記の例はSQLServerでは機能しません。 SQL Serverでは、プラス記号(+
)を使用します )文字列連結演算子:
SELECT 'Spy' + 'craft';
結果:
Spycraft