SQL Server의 SUBSTRING 함수 지정된 위치에서 시작하여 선택적 길이로 문자열에서 하위 문자열을 추출하는 데 사용됩니다.
추가 처리 또는 분석을 위해 문자열의 특정 부분을 추출해야 할 때 매우 유용합니다.
SQL SUBSTRING 함수는 다음에서도 작동합니다. Azure SQL 데이터베이스 , Azure SQL 데이터 웨어하우스 , 그리고 병렬 데이터 웨어하우스 .
통사론
SQL SUBSTRING 함수 구문은 다음과 같습니다.
SUBSTRING(입력_문자열, 시작, 길이);
매개변수:
- 입력_문자열 – 문자, 바이너리, 텍스트 또는 이미지 표현일 수 있습니다.
- 시작 - 반환된 하위 문자열이 시작되는 위치를 정의하는 정수입니다. 문자열의 첫 번째 위치는 1입니다.
- 길이 - 부분 문자열에서 반환될 문자 수를 지정하는 양의 정수입니다.
- 반품 – 입력 문자열의 위치에서 시작하여 지정된 길이의 하위 문자열을 반환합니다.
SQL Server SUBSTRING() 함수 예
SQL의 SUBSTRING() 함수의 몇 가지 예를 살펴보고 이를 SQL 서버에서 사용하는 방법을 이해해 보겠습니다.
SQL SUBSTRING 함수 예
이 예에서는 SQL Server의 SUBSTRING 함수를 사용합니다.
질문:
SELECT SUBSTRING ('techcodeview.com',1,5);> 산출:

SQL에서 SUBSTRING() 함수 사용 규칙
- SQL substring() 함수에는 세 가지 인수가 모두 필요합니다. 시작 위치가 표현식의 최대 문자 수를 초과하는 경우 SQL Server substring() 함수는 아무것도 반환하지 않습니다.
- 전체 길이는 원래 문자열의 최대 문자 길이를 초과할 수 있습니다.
- 이 경우 결과 하위 문자열은 표현식 시작 위치부터 표현식 끝 문자까지의 전체 문자열입니다.
리터럴 문자열을 포함하는 SUBSTRING() 함수
리터럴 문자열과 함께 SQL SUBSTRING 함수를 사용하는 것은 매우 쉽습니다. 원하는 값을 구문에 입력하기만 하면 됩니다.
java8 기능
리터럴 문자열을 사용하는 SUBSTRING() 함수 예
다음 SQL SUBSTRING 함수 명령을 고려해보세요.
SELECT SUBSTRING ( 'SQL In Geeksforgeeks', 7, 18 ) AS ExtractString>
원래 문자열 'SQL In Geeksforgeeks'를 가져와 7번째 문자로 시작하고 18자 길이의 하위 문자열을 추출합니다. 별칭 ExtractString이 있는 새 열이 결과 하위 문자열과 함께 반환됩니다.
미리 정해진 시작 위치와 길이를 기준으로 문자열의 일부를 추출하려면 SUBSTRING 함수를 사용합니다. 원래 문자열은 함수의 첫 번째 인수로 전달되고 두 번째 인수는 시작 문자(이 경우 일곱 번째 문자)를 지정합니다. 세 번째 인수(이 경우 18자)는 하위 문자열을 추출할 기간을 지정합니다.
이 SQL 쿼리를 사용하는 목적은 추가 분석 또는 보고에 필요한 긴 문자열의 특정 부분을 추출하는 것입니다. 긴 텍스트 문자열에서 특정 정보를 추출하고 조작해야 하는 대규모 데이터 세트를 처리할 때 유용할 수 있습니다.
산출

서 있는
테이블 열이 있는 SUBSTRING() 함수
테이블 열에 SUBSTRING() 함수를 사용하려면 먼저 테이블을 만듭니다. 플레이어_세부정보 에는 PlayerId, PlayerName 및 City라는 세 개의 열이 있습니다. PlayerId 열은 기본 키로 지정되므로 테이블의 각 행은 식별자로 다른 PlayerId를 갖습니다.
테이블이 생성된 후 INSERT INTO 문을 사용하여 10개의 데이터 행이 테이블에 추가됩니다. PlayerId 열은 각 행의 고유 식별자로 자동 생성되지만 PlayerName 및 City 열에는 각 행에 대해 지정된 값이 있습니다.
쿼리:
CREATE TABLE Player_Details ( PlayerId INT PRIMARY KEY , PlayerName VARCHAR(50), City VARCHAR(50) ); INSERT INTO Player_Details (PlayerId, PlayerName, City) VALUES (1,'John', 'New York'), (2,'Sarah', 'Los Angeles'), (3,'David', 'Chicago'), (4,'Emily', 'Houston'), (5,'Michael', 'Phoenix'), (6,'Ava', 'Philadelphia'), (7,'Joshua', 'San Antonio'), (8,'Sophia', 'San Diego'), (9,'Daniel', 'Dallas'), (10,'Olivia', 'San Jose');>
산출:

테이블 열이 포함된 SUBSTRING() 함수 예
이 예에서는 테이블 열에 SUBSTRING() 함수를 사용합니다.
질문
SELECT SUBSTRING (PlayerName, 1, 3) AS ExtractString FROM Player_Details;>
산출

하위 쿼리의 PlayerName 열은 각 이름의 처음 세 문자를 선택하는 SUBSTRING 함수를 받습니다. 이 하위 문자열 작업의 결과는 별칭 ExtractString이 있는 새 열의 하위 쿼리에서 PlayerName 열을 반환하는 것입니다.
중첩 쿼리에서 SUBSTRING 사용
player_Details 테이블 내의 중첩 쿼리에 SUBSTRING 함수를 사용한다고 가정하면 다음 SQL 코드를 사용할 수 있습니다.
질문
SELECT SUBSTRING (subquery.PlayerName, 1, 3) AS ShortenedName, subquery.City FROM ( SELECT * FROM Player_Details WHERE City = 'New York' ) AS subquery;>
산출

데이터 구조에서 구조란 무엇인가
City 열이 New York인 Player_Details 테이블의 모든 행을 선택하기 위해 이 SQL 쿼리는 먼저 중첩 쿼리를 만듭니다. 그러면 이 중첩 쿼리의 결과가 포함된 파생 테이블 또는 하위 쿼리가 SUBSTRING 함수의 입력으로 사용됩니다.
하위 쿼리의 PlayerName 열은 각 이름의 처음 세 문자를 선택하는 SUBSTRING 함수를 받습니다. 그런 다음 이 하위 문자열 작업의 결과는 별칭이 ShortenedName인 새 열의 하위 쿼리에서 City 열과 함께 반환됩니다.
SQL SUBSTRING 함수에 대한 중요 함수
- SUBSTRING() 함수는 지정된 위치에서 시작하여 선택적 길이를 사용하여 문자열에서 하위 문자열을 추출합니다.
- 테이블의 리터럴 문자열이나 열과 함께 사용할 수 있습니다.
- 그만큼 왼쪽() 그리고 오른쪽() 함수는 SUBSTRING() 함수의 구현이기도 합니다.
- WHERE 절에서 SUBSTRING()을 사용하면 함수가 각 행에 대해 실행되므로 쿼리 성능에 부정적인 영향을 미칩니다.