집 >데이터 베이스 >MySQL 튜토리얼 >T-SQL에서 선택적 구분 기호를 사용하여 문자열을 효율적으로 분할하는 방법은 무엇입니까?
T-SQL에서 구분 기호 유무에 관계없이 문자열 분할 처리
SQL 쿼리에는 문자열을 조작하고 구분 기호를 기준으로 특정 부분을 추출해야 하는 경우가 많습니다. 그러나 구분 기호가 누락되었거나 선택 사항인 상황을 처리하려면 신중한 계획이 필요합니다.
주어진 시나리오에서 작업은 '/' 문자로 구분된 이름(이름과 성)이 포함된 문자열 열을 분할하는 것입니다. 코드는 처음에 모든 줄에 구분 기호가 포함되어 있다고 가정하지만 그렇지 않은 줄에서는 오류가 발생합니다.
이 문제를 효율적으로 처리하기 위해 다음과 같은 수정 사항을 구현할 수 있습니다.
<code class="language-sql">SELECT CASE WHEN CHARINDEX('/', myColumn) = 0 THEN myColumn ELSE SUBSTRING(myColumn, 1, CHARINDEX('/', myColumn) - 1) END AS FirstName, CASE WHEN CHARINDEX('/', myColumn) = 0 THEN NULL ELSE SUBSTRING(myColumn, CHARINDEX('/', myColumn) + 1, LEN(myColumn)) END AS LastName FROM MyTable;</code>
이 수정된 코드는 CASE 문을 사용하여 '/' 문자가 있는지 확인합니다(없으면 CHARINDEX('/')는 0을 반환합니다). 발견되면 문자열이 예상대로 분할됩니다. 그렇지 않으면 전체 문자열을 이름으로 처리하고 성을 NULL로 설정합니다.
이 논리를 추가하면 쿼리가 강력해지고 구분 기호가 있거나 없는 행을 처리할 수 있어 원하는 출력을 제공할 수 있습니다.
FirstName | LastName |
---|---|
John | Smith |
Jane | Doe |
Steve | NULL |
Bob | Johnson |
위 내용은 T-SQL에서 선택적 구분 기호를 사용하여 문자열을 효율적으로 분할하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!