問題:
テーブルの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 |
| アレックスジャクソン |
| マーティンデイビス |