問題:
テーブルの2つの列の文字列を1つに結合したい。
例:
私たちのデータベースには、student
次の列にデータがあります:id
、first_name
およびlast_name
。
id | first_name | last_name |
---|---|---|
1 | ロラ | スミス |
2 | エミル | ブラウン |
3 | アレックス | ジャクソン |
4 | マーティン | デイビス |
生徒の名前に名前を1つの文字列で追加しましょう。各名前の間にスペースを使用してください。
解決策:
SELECT first_name || ‘ ‘ || last_name AS full_name FROM student;
このクエリは、full_name
という名前の1つの列にレコードを返します :
full_name |
---|
Lora Smith |
エミル・ブラウン |
アレックスジャクソン |
マーティンデイビス |
ディスカッション:
別の文字列に文字列を追加して1つの結果を返すには、||を使用しますオペレーター。これにより、左右から2つの文字列が加算され、1つの結果が返されます。列の名前を使用する場合は、引用符で囲まないでください。ただし、文字列値をスペースまたはテキストとして使用する場合は、引用符で囲んでください。
この例では、first_name
にスペースを追加しました 次に、列last_name
。この新しい列はfull_name
と呼ばれます 。
特殊機能CONCATを使用することもできます。引数として結合するには、文字列のリストまたは列の名前が必要です。
SELECT CONCAT(first_name, ‘ ‘, last_name) AS full_name FROM student;
結果は同じです。
ただし、CONCAT()関数は、NULL値を持つ列からデータを取得する場合に適しています。なんで?結合する値にNULLが含まれている場合、演算子は結果としてNULLを返すためです。 CONCAT()の場合、NULLは表示されません。
||の結果を見てくださいEmillに姓が記録されていない場合の演算子:
SELECT first_name || ‘ ‘ || last_name AS full_name FROM student;
full_name |
---|
Lora Smith |
NULL |
アレックスジャクソン |
マーティンデイビス |
同じデータのCONCAT関数を見てください:
SELECT CONCAT(first_name, ‘ ‘, last_name) AS full_name FROM student;
full_name |
---|
Lora Smith |
Emil |
アレックスジャクソン |
マーティンデイビス |