SQL で複数の値を持つ単一の列を個別の列に変換する
SQL データの操作には、多くの場合、列の再構築が必要になります。 一般的なタスクの 1 つは、複数の値を含む単一の列を個別の列に分割することです。 これを実現する方法は次のとおりです:
次の SQL クエリは、CASE
ステートメントと文字列関数を使用して、姓名を含む「name」という名前の列を解析します。
<code class="language-sql">SELECT CASE WHEN name LIKE '% %' THEN SUBSTRING(name, 1, CHARINDEX(' ', name) - 1) ELSE name END AS first_name, CASE WHEN name LIKE '% %' THEN SUBSTRING(name, CHARINDEX(' ', name) + 1, LEN(name)) ELSE NULL END AS last_name FROM YourTable;</code>
このアプローチでは、name
を使用して LIKE '% %'
列にスペースが含まれているかどうかを確認します。スペースが存在する場合、SUBSTRING
関数と CHARINDEX
関数はスペースの前後のテキストをそれぞれ first_name
と last_name
に抽出します。 スペースが見つからない場合は、name
全体が first_name
に割り当てられ、last_name
が NULL
に設定されます。
このソリューションは、多くの一般的なシナリオに実用的なアプローチを提供しますが、より複雑な状況では、より高度な文字列操作技術が必要になる場合があります。
以上がSQL で複数の値を含む 1 つの列を別の列に分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。