问题:
您想将包含姓名列表的单列转换为名和姓的多列。
示例:
<code class="language-sql">姓名 ------------ abcd efgh ijk lmn opq asd j. asdjja asb (asdfas) asd asd</code>
预期输出:
<code class="language-sql">名 姓 ---------------------------------- abcd efgh ijk lm opq asd asdjja asb asd asd NULL</code>
解决方案:
之前的方法可能无法正确处理所有姓名格式。以下是用 T-SQL 改进的解决方案:
<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>
此 SQL 代码首先检查姓名中是否存在空格。如果存在,它使用 SUBSTRING
函数提取空格之前的部分作为名,空格之后的部分作为姓。如果姓名中没有空格,则将整个姓名作为名,姓则为 NULL。 这比之前的解决方案更稳健,能更好地处理各种姓名格式。
以上是如何在 SQL 中将单列姓名拆分为名字列和姓氏列?的详细内容。更多信息请关注PHP中文网其他相关文章!