問題:
您想要將包含姓名清單的單列轉換為名和姓的多列。
範例:
<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中文網其他相關文章!