logo

SQL의 SUBSTRING_INDEX 함수

SUBSTRING_INDEX 문자열 함수는 주어진 문자열에서 특정 기호 앞에 있는 모든 문자를 표시합니다.

SUBSTRING_INDEX 문자열 함수의 구문

구문1: 이 구문은 SQL 테이블의 열 이름과 함께 SUBSTRING_INDEX를 사용합니다.

 SELECT SUBSTRING_INDEX(Column_Name, symbol, starting_position) AS Alias_Name FROM Table_Name; 

구문에서 SUBSTRING_INDEX 문자열 함수를 수행하려는 열의 이름을 지정해야 합니다.

구문2: 이 구문은 문자열과 함께 SUBSTRING_INDEX 함수를 사용합니다.

 SELECT SUBSTRING_INDEX(Original_String, symbol, starting_position); 

SUBSTRING_INDEX 문자열 함수의 예

예시 1: 다음 SELECT 쿼리는 원래 단어 JAVA^TPOINT에서 지정된 기호 앞의 4개 문자를 보여줍니다.

SELECT SUBSTRING_INDEX('JAVA^TPOINT', '^', 1) AS SUBSTRING_INDEX_4_characters;

삽입 정렬 자바

산출:

SUBSTRING_INDEX_4_자
자바

예 2: 다음 SELECT 쿼리는 지정된 문자열에서 SUBSTRING_INDEX 20자를 보여줍니다.

 SELECT SUBSTRING_INDEX( 'JAVATPOINT is a. good website', '.', 1 ) AS SUBSTRING_INDEX_before.symbol; 

산출:

SUBSTRING_INDEX_before.symbol
JAVATPOINT는

예시 3: 다음 SELECT 쿼리는 주어진 '축하합니다' 단어에서 세 번째 위치부터 지정된 기호까지의 5개 문자를 보여줍니다.

 SELECT SUBSTRING_INDEX( '[email protected]', '@', 3) AS SUBSTRING_INDEX_before@symbol; 

산출:

SUBSTRING_INDEX_before@symbol
정말 좋아해요

예시 4: 다음 SELECT 쿼리는 지정된 문자열에서 다섯 번째 위치부터 지정된 기호까지의 20개 문자를 보여줍니다.

 SELECT SUBSTRING_INDEX('New Delhi is the capital# of India', '#', 5) AS SUBSTRING_INDEX_5_characters; 

산출:

SUBSTRING_INDEX_before#symbol
델리가 수도이다

예 6: 이 예에서는 구조적 쿼리 언어의 테이블과 함께 SUBSTRING_INDEX 함수를 사용합니다.

SQL로 SUBSTRING_INDEX 함수를 이해하려면 먼저 CREATE 문을 사용하여 SQL 테이블을 생성해야 합니다. SQL 데이터베이스에서 새 테이블을 생성하는 구문은 다음과 같습니다.

 CREATE TABLE table_name ( First_Column_of_table Data Type (character_size of 1st Column), Second_Column_of_table Data Type (character_size of the 2nd column ), Third_Column_of_table Data Type (character_size of the 3rd column), ... Last_Column_of_table Data Type (character_size of the Nth column) ); 

다음 CREATE 문은 학생_성적 테이블:

 CREATE TABLE Student_Marks ( Student_ID INT NOT NULL PRIMARY KEY, Student_First_Name VARCHAR (100), Student_Middle_Name VARCHAR (100), Student_Last_Name VARCHAR (100), Student_Class INT NOT NULL, Student_City Varchar(120), Student_State Varchar (80), Student_Marks INT ); 

아래 INSERT 쿼리는 대학 교수진의 기록을 삽입합니다. 학생_성적 테이블:

 INSERT INTO Student_Marks (Student_ID, Student_First_Name, Student_Middle_Name, Student_Last_Name, Student_Class, Student_City, Student_State, Stude.nt_Marks) VALUES (4001, Ama.n, Roy, Sha#rma, 4, Chandigarh, Pun#jab, 88); INSERT INTO Student_Marks (Student_ID, Student_First_Name, Student_Middle_Name, Student_Last_Name, Student_Class, Student_City, Student_State, Student_Marks) VALUES ( 4002, Vish.al, Gurr, Sh#arma, 8, Murthal, Harya#na, 95 ); INSERT INTO Student_Marks (Student_ID, Student_First_Name, Student_Middle_Name, Student_Last_Name, Student_Class, Student_City, Student_State, Student_Marks) VALUES (4007, Raj., singhania, Gupt#a, 6, Ghaziabad, Uttar Pr#adesh, 91); INSERT INTO Student_Marks (Student_ID, Student_First_Name, Student_Middle_Name Student_Last_Name, Student_Class, Student_City, Student_State, Student_Marks) VALUES (4004, Yas.h, Chopra, Singh#ania, 9, Jaipur, Rajasthan#, 85); INSERT INTO Student_Marks (Student_ID, Student_First_Name, Student_Middle_Name, Student_Last_Name, Student_Class, Student_City, Student_State, Student_Marks) VALUES (4011, Vin.ay, Sharma, Roy#, 8, Chandigarh, Punjab#, 94); INSERT INTO Student_Marks (Student_ID, Student_First_Name, Student_Middle_Name, Student_Last_Name, Student_Class, Student_City, Student_State, Student_Marks) VALUES (4006, Man.oj, singhania, Gup#ta, 5, Ghaziabad, Uttar Pr#adesh, 83); INSERT INTO Student_Marks (Student_ID, Student_First_Name, Student_Middle_Name, Student_Last_Name, Student_Class, Student_City, Student_State, Student_Marks) VALUES (4010, Ra.m, Raheem, Gupt#a, 9, Lucknow, Uttar Pra#desh, 89); 

다음 SELECT 문은 위의 삽입된 레코드를 표시합니다. 학생_성적 테이블:

 SELECT * FROM Student_Marks; 

남학생_ID 남학생_이름_이름 Schoolboy_Middle_Name 남학생_성_이름 남학생_수업 Schoolboy_City Schoolboy_State 남학생_마크
4001 한 남자 로이 샤#rma 4 찬디가르 말장난#jab 88
4002 비쉬알 구르 샤#무기 8 무르탈 하리야#na 95
4007 주권. 싱가니아 굽트#a 6 가지아바드 우타르프라데시 91
4004 야스.h 초프라 싱#ania 9 자이푸르 라자스탄# 85
4011 빈에이 샤르마 로이# 8 찬디가르 펀자브# 94
4006 아야. 싱가니아 굽#ta 5 가지아바드 우타르 프라#desh 83
4010 라힘 굽트#a 9 러크나우 우타르프라데시 89

쿼리 1: 다음 SELECT 쿼리는 위 Student_Marks 테이블의 Student_First_Name 열과 함께 SUBSTRING_INDEX 함수를 사용합니다.

 SELECT Student_First_Name, SUBSTRING_INDEX(Student_First_Name, ., 1) AS SUBSTRING_INDEX_before.symbol FROM Student_Marks; 

이 SQL 문은 각 학생 이름의 첫 번째 위치부터 # 기호까지의 문자를 보여줍니다.

산출:

학생_이름_이름 SUBSTRING_INDEX_before.symbol
한 남자 또는
비쉬알 오는
주권. 주권
야스.h 플라스틱
빈에이 오다
아야. 남성

쿼리 2: 다음 SELECT 쿼리는 위 Student_Marks 테이블의 Student_Last_Name 열과 함께 SUBSTRING_INDEX 함수를 사용합니다.

 SELECT Student_Last_Name, SUBSTRING_INDEX(Student_Last_Name, #, 1) AS SUBSTRING_INDEX_before#symbol FROM Student_Marks; 

이 SQL 문은 각 학생의 성에서 첫 번째 위치부터 # 기호까지의 문자를 보여줍니다.

산출:

학생_성_이름 SUBSTRING_INDEX_before#symbol
샤#rma 마시다
샤#무기
굽트#a 굽트
싱#ania
로이# 로이
굽#ta 허튼 이야기
굽트#a 굽트

쿼리 3: 다음 SELECT 쿼리는 위 Student_Marks 테이블의 Student_Address 열과 함께 SUBSTRING_INDEX 함수를 사용합니다.

 SELECT Student_State, SUBSTRING_INDEX(Student_State, @, 2) AS SUBSTRING_INDEX_@symbol FROM Student_Marks; 

이 SQL 문은 각 학생의 상태에서 두 번째 위치부터 주어진 기호까지의 문자를 보여줍니다.

산출:

학생_주 SUBSTRING_INDEX_@ 기호
펀@jab
하리야@na 아리아
우타르 프라@adesh 따타르 Pr
라자스탄@ 시간 장소
펀자브@ 잡아내다
우타르프라데시@desh 따타르 프라
우타르 프라@adesh 따타르 Pr