将具有多个值的单列转换为 SQL 中的单独列
使用 SQL 数据通常需要重构列。 一项常见任务是将包含多个值的单个列拆分为不同的列。 这是实现此目的的方法:
以下 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 中将单个列的多个值拆分为单独的列?的详细内容。更多信息请关注PHP中文网其他相关文章!