> 데이터 베이스 > MySQL 튜토리얼 > SQL에서 이름의 단일 열을 이름과 성 열로 분할하는 방법은 무엇입니까?

SQL에서 이름의 단일 열을 이름과 성 열로 분할하는 방법은 무엇입니까?

DDD
풀어 주다: 2025-01-13 10:23:42
원래의
992명이 탐색했습니다.

How to Split a Single Column of Names into First and Last Name Columns in SQL?

단일 열 값을 여러 열 값으로 분할

질문:

이름 목록이 포함된 단일 열을 이름과 성으로 구성된 여러 열로 변환하려고 합니다.

예:

<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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿