집 >데이터 베이스 >MySQL 튜토리얼 >T-SQL의 구분된 문자열에서 특정 데이터를 추출하는 방법은 무엇입니까?
T-SQL의 구분된 문자열에서 특정 데이터를 분리하는 방법
SQL 세계에서 문자열 작업은 때때로 문제가 될 수 있습니다. , 특히 여러 데이터 포인트가 포함된 긴 문자열에서 특정 정보를 추출하려고 할 때 그렇습니다. 구분 기호로 구분된 여러 키-값 쌍을 포함하는 문자열을 보유하는 열이 있는 테이블이 있는 시나리오를 살펴보겠습니다.
문제 정의
주어진 테이블 다음 구조를 사용합니다.
Col1 = '123' Col2 = 'AAAAA' Col3 = 'Clent ID = 4356hy|Client Name = B B BOB|Client Phone = 667-444-2626|Client Fax = 666-666-0151|Info = INF8888877 -MAC333330554/444400800'
귀하의 목표는 "클라이언트 이름" 값만 추출하는 것입니다. 이 경우에는 "Col3" 열의 "B B BOB"입니다. 키-값 쌍을 구분하는 구분 기호는 '|'입니다. 파이프 문자이며 키-값 쌍 자체는 앞뒤 공백이 있는 등호(' = ')로 구분됩니다.
해결책
이 문제를 해결하려면 T-SQL에서 문제가 발생하는 경우 다음과 같은 문자열 조작 기술을 사용할 수 있습니다.
코드 조각
특정 데이터의 경우 다음 코드 조각을 사용할 수 있습니다. 원하는 결과를 얻으려면:
Select col1, col2, LTRIM(RTRIM(SUBSTRING( STUFF(col3, CHARINDEX('|', col3, PATINDEX('%|Client Name =%', col3) + 14), 1000, ''), PATINDEX('%|Client Name =%', col3) + 14, 1000))) col3 from Table01
참고: 키의 시작 위치를 찾기 위해 CHARINDEX와 PATINDEX를 사용할 때 약간의 성능 차이가 발생할 수 있습니다. 그러나 두 접근 방식 모두 효율성이 비슷하기 때문에 일반적으로 비슷한 결과를 낳습니다.
위 내용은 T-SQL의 구분된 문자열에서 특정 데이터를 추출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!