SQL Server SUBSTRING() 함수

SQL Server SUBSTRING() 함수

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() 함수 사용 규칙

  1. SQL substring() 함수에는 세 가지 인수가 모두 필요합니다. 시작 위치가 표현식의 최대 문자 수를 초과하는 경우 SQL Server substring() 함수는 아무것도 반환하지 않습니다.
  2. 전체 길이는 원래 문자열의 최대 문자 길이를 초과할 수 있습니다.
  3. 이 경우 결과 하위 문자열은 표현식 시작 위치부터 표현식 끝 문자까지의 전체 문자열입니다.

리터럴 문자열을 포함하는 SUBSTRING() 함수

리터럴 문자열과 함께 SQL SUBSTRING 함수를 사용하는 것은 매우 쉽습니다. 원하는 값을 구문에 입력하기만 하면 됩니다.

리터럴 문자열을 사용하는 SUBSTRING() 함수 예

다음 SQL SUBSTRING 함수 명령을 고려해보세요.

  SELECT SUBSTRING (  'SQL In Geeksforgeeks', 7, 18  ) AS   ExtractString 

원래 문자열 'SQL In Geeksforgeeks'를 가져와 7번째 문자로 시작하고 18자 길이의 하위 문자열을 추출합니다. 별칭 ExtractString이 있는 새 열이 결과 하위 문자열과 함께 반환됩니다.

미리 정해진 시작 위치와 길이를 기준으로 문자열의 일부를 추출하려면 SUBSTRING 함수를 사용합니다. 원래 문자열은 함수의 첫 번째 인수로 전달되고 두 번째 인수는 시작 문자(이 경우 일곱 번째 문자)를 지정합니다. 세 번째 인수(이 경우 18자)는 하위 문자열을 추출할 기간을 지정합니다.

이 SQL 쿼리를 사용하는 목적은 추가 분석 또는 보고에 필요한 긴 문자열의 특정 부분을 추출하는 것입니다. 긴 텍스트 문자열에서 특정 정보를 추출하고 조작해야 하는 대규모 데이터 세트를 처리할 때 유용할 수 있습니다.

산출

리터럴 문자열 예제 출력을 포함하는 substring() 함수

테이블 열이 있는 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; 

산출

테이블 열 예제 출력이 포함된 substring() 함수

하위 쿼리의 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; 

산출

img

City 열이 New York인 Player_Details 테이블의 모든 행을 선택하기 위해 이 SQL 쿼리는 먼저 중첩 쿼리를 만듭니다. 그러면 이 중첩 쿼리의 결과가 포함된 파생 테이블 또는 하위 쿼리가 SUBSTRING 함수의 입력으로 사용됩니다.

하위 쿼리의 PlayerName 열은 각 이름의 처음 세 문자를 선택하는 SUBSTRING 함수를 받습니다. 그런 다음 이 하위 문자열 작업의 결과는 별칭이 ShortenedName인 새 열의 하위 쿼리에서 City 열과 함께 반환됩니다.

SQL SUBSTRING 함수에 대한 중요 함수

  • SUBSTRING() 함수는 지정된 위치에서 시작하여 선택적 길이를 사용하여 문자열에서 하위 문자열을 추출합니다.
  • 테이블의 리터럴 문자열이나 열과 함께 사용할 수 있습니다.
  • 그만큼 왼쪽() 그리고 오른쪽() 함수는 SUBSTRING() 함수의 구현이기도 합니다.
  • WHERE 절에서 SUBSTRING()을 사용하면 함수가 각 행에 대해 실행되므로 쿼리 성능에 부정적인 영향을 미칩니다.

마음에 드실지도 몰라요