初心者向け!SQL Serverでクエリ内のテキストを連結する
SQL Server でクエリ内のテキストを連結する方法
+ 演算子を使う
最も簡単な方法は、+
演算子を使うことです。
SELECT '名前:' + FirstName + ' ' + LastName;
この例では、FirstName
と LastName
という列の値を連結して、"名前: 山田 太郎" という文字列を作成しています。
注意点
+
演算子は、数値だけでなく文字列も連結できます。NULL
値があると、連結結果もNULL
になります。
CONCAT()
関数は、複数の文字列を連結するために用意されています。
SELECT CONCAT('名前:', FirstName, ' ', LastName);
この例は、+
演算子を使った例と同じ結果になります。
CONCAT()
関数は、+
演算子よりも処理速度が遅い場合があります。
FOR XML PATH()
を使って、複数の文字列を連結することもできます。
SELECT FirstName + ', ' + LastName
FROM (
SELECT FirstName, LastName
FROM Employees
FOR XML PATH('')
) AS t;
FOR XML PATH()
は、複雑な連結処理に適しています。- 処理速度は、他の方法よりも遅くなる場合があります。
その他の方法
上記以外にも、STUFF()
関数や COALESCE()
関数などを使って、テキストを連結することができます。
- 簡単な連結処理であれば、
+
演算子を使うのがおすすめです。 - 処理速度が重要な場合は、
CONCAT()
関数を使うのがおすすめです。 - 複雑な連結処理を行う場合は、
FOR XML PATH()
を使うのがおすすめです。
+ 演算子
SELECT '名前:' + FirstName + ' ' + LastName;
CONCAT() 関数
SELECT CONCAT('名前:', FirstName, ' ', LastName);
FOR XML PATH()
SELECT FirstName + ', ' + LastName
FROM (
SELECT FirstName, LastName
FROM Employees
FOR XML PATH('')
) AS t;
これらのサンプルコードを実行するには、SQL Server Management Studio (SSMS) などのツールが必要です。
SSMS でサンプルコードを実行する手順
- SSMS を起動します。
- 接続するデータベースを選択します。
- 新しいクエリウィンドウを開きます。
- サンプルコードをクエリウィンドウに貼り付けます。
- [実行] ボタンをクリックします。
結果
サンプルコードを実行すると、以下の結果が表示されます。
名前: 山田 太郎
名前: 山田 太郎
山田 太郎, 佐藤 花子
SQL Server でクエリ内のテキストを連結するには、いくつかの方法があります。
テキストを連結する他の方法
STUFF()
関数は、文字列の一部を別の文字列で置き換えるために使用できます。
SELECT STUFF('山田 太郎', 10, 1, ', 佐藤 花子');
この例では、"山田 太郎" という文字列の 10 文字目から 1 文字を "、佐藤 花子" という文字列で置き換えています。
STUFF()
関数は、複雑な連結処理には適していません。
COALESCE()
関数は、複数の値のうち、最初の NULL ではない値を返します。
SELECT COALESCE(FirstName, '') + ', ' + COALESCE(LastName, '');
COALESCE()
関数は、NULL 値を処理する必要がある場合に便利です。- 連結処理自体は、
+
演算子やCONCAT()
関数の方が効率的です。
CASE 式を使って、条件に応じて異なる文字列を連結することもできます。
SELECT CASE WHEN Gender = 'M' THEN '男性' ELSE '女性' END + ', ' + LastName;
この例では、Gender
列の値が 'M' の場合は "男性"、それ以外の場合は "女性" という文字列を連結しています。
- CASE 式は、複雑な条件分岐がある場合に便利です。
他にもさまざまな方法があるので、自分に合った方法を見つけてください。
sql sql-server