CONCAT (Transact-SQL)
2 つ以上の文字列値を連結した結果の文字列を返します。
構文
CONCAT ( string_value1, string_value2 [, string_valueN ] )
引数
- string_value
他の値に連結する文字列値です。
戻り値の型
入力に依存する文字列、長さ、および型です。
説明
CONCAT は、文字列引数の可変数を取得して、1 つの文字列に連結します。 最小で 2 つの入力値が必要です。それ以外の場合は、エラーが発生します。 すべての引数は、暗黙的に文字列型に変換され、連結されます。 Null 値は暗黙的に空の文字列に変換されます。 すべての引数が NULL の場合、varchar(1) 型の空の文字列が返されます。 文字列への暗黙の変換は、データ型変換の既存の規則に従います。 データ型の変換の詳細については、「CAST および CONVERT (Transact-SQL)」を参照してください。
戻り値の型は、引数の種類によって異なります。 次の表に、マッピングを示します。
入力型 |
出力型と長さ |
---|---|
引数が SQL CLR システム型、SQL CLR UDT、または nvarchar(max) の場合 |
nvarchar(max) |
それ以外の場合、引数が varbinary(max) または varchar(max) の場合 |
varchar(max)。ただし、いずれかのパラメーターが任意の長さの nvarchar である場合は除きます。 この場合、結果は nvarchar (max) です。 |
それ以外の場合、引数が nvarchar(<= 4000) の場合 |
nvarchar(<= 4000) |
それ以外の他のすべての場合 |
varchar(<= 8000)。ただし、いずれかのパラメーターが任意の長さの nvarchar である場合を除きます。 この場合、結果は nvarchar (max) です。 |
引数が nvarchar では <= 4000 の場合、または varchar では <= 8000 の場合、暗黙的な変換は結果の長さに影響を与えます。 他のデータ型は、暗黙的に文字列に変換された場合は異なる長さになります。 たとえば、int (14) の文字列の長さは 12 ですが、float の長さは 32 です。 このように 2 つの整数を連結した結果としての長さは少なくとも 24 です。
入力引数がサポートされるラージ オブジェクト (LOB) の型ではない場合、戻り値の型に関係なく、戻り値の型は長さ 8000 に切り詰められます。 この切り捨てではスペースが保持され、効率的なプラン生成をサポートします。
この関数は、SQL Server 2012 以上のサーバーに対してリモート処理が可能です。 SQL Server 2012 より前のバージョンをインストールしているサーバーには、リモート処理が行われません。
使用例
A. CONCAT を使用する
SELECT CONCAT ( 'Happy ', 'Birthday ', 11, '/', '25' ) AS Result;
以下に結果セットを示します。
Result
-------------------------
Happy Birthday 11/25
(1 row(s) affected)
B. NULL 値を持つ CONCAT を使用する
CREATE TABLE #temp (
emp_name nvarchar(200) NOT NULL,
emp_middlename nvarchar(200) NULL,
emp_lastname nvarchar(200) NOT NULL
);
INSERT INTO #temp VALUES( 'Name', NULL, 'Lastname' );
SELECT CONCAT( emp_name, emp_middlename, emp_lastname ) AS Result
FROM #temp;
以下に結果セットを示します。
Result
------------------
NameLastname
(1 row(s) affected)