logo

وظيفة SUBSTR في SQL

تعرض دالة سلسلة SUBSTR في لغة الاستعلام الهيكلية الأحرف أو السلسلة الفرعية من قيمة الفهرس المحددة للسلسلة الأصلية. يسمح لك SQL أيضًا باستخدام الدالة SUBSTR مع الجداول.

بناء جملة دالة سلسلة SUBSTR

بناء الجملة 1: يستخدم بناء الجملة هذا الدالة SUBSTR مع اسم العمود في جدول SQL:

 SELECT SUBSTR(Column_Name, Starting_Index_value, Length_of_string) AS Alias_Name FROM Table_Name; 

في بناء الجملة هذا، يتعين علينا تحديد اسم العمود الذي نريد تنفيذ وظيفة SUBSTR() عليه. هنا، تكون المعلمة Length_of_string اختيارية. إذا تم حذفها، فإن هذه الدالة تستخرج السلسلة بأكملها من قيمة فهرس البداية.

بناء الجملة 2: يستخدم بناء الجملة هذا الدالة SUBSTR مع السلسلة:

 SELECT SUBSTR(Original_String, Starting_Index_value, Length_of_string); 

بناء الجملة 2: يستخدم بناء الجملة هذا الدالة SUBSTR بحرف واحد:

شريحة جافا
 SELECT SUBSTR(String, Starting_Index_value, 1); 

أمثلة على دالة سلسلة SUBSTR

مثال 1: يعرض استعلام SELECT التالي الأحرف من الرقم 17ذموضع السلسلة المحددة.

 SELECT SUBSTR( 'JavaTpoint is a website for professionals', 17, 24); This SQL query returns the 24 characters with spaces after the 17th position in the string. 

انتاج:

jvm في جافا
 website for professionals 

مثال 2: يعرض استعلام SELECT التالي الأحرف من -17ذموضع السلسلة المحددة:

 SELECT SUBSTR( 'JavaTpoint is a website for professionals', -17, 5); 

يعرض استعلام SQL هذا الأحرف الخمسة من آخر 17 حرفًاذموقف السلسلة.

انتاج:

 website for professionals 

مثال 3: يعرض استعلام SELECT التالي كافة الأحرف من الرقم 5ذموقف السلسلة.

 SELECT SUBSTR( 'New Delhi IS the Capital OF India', 5); 

انتاج:

 Delhi IS the Capital OF India 

مثال 4: يعرض استعلام SELECT التالي الحرف المفرد من الرقم 8ذموقف السلسلة.

 SELECT SUBSTR( 'JavaTpoint', 8, 1); 

انتاج:

 n 

المثال 5: يستخدم هذا المثال الدالة SUBSTR مع جدول SQL

باوانديب راجان

في هذا المثال، سنقوم بإنشاء جدول جديد نريد تنفيذ وظيفة SUBSTR عليه.

في هذا المثال، يتعين علينا إنشاء جدول SQL جديد سنقوم من خلاله بتنفيذ وظيفة Concat() على الأعمدة. تم ذكر بناء الجملة لإنشاء جدول 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 التالية بإنشاء Student_Marks طاولة:

com.strsep
 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 أدناه بإدراج سجلات كليات الكلية في Student_Marks طاولة:

 INSERT INTO Student_Marks (Student_ID, Student_First_Name, Student_Middle_Name, Student_Last_Name, Student_Class, Student_City, Student_State, Student_Marks) VALUES (4001, Aman, Roy, Sharma, 4, Chandigarh, Punjab, 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, Vishal, Gurr, Sharma, 8, Murthal, Haryana, 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, Gupta, 6, Ghaziabad, Uttar Pradesh, 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, Yash, Chopra, Singhania, 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, Vinay, 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, Manoj, singhania, Gupta, 5, Ghaziabad, Uttar Pradesh, 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, Ram, Raheem, Gupta, 9, Lucknow, Uttar Pradesh, 89); 

تعرض عبارة SELECT التالية السجلات المدرجة لما سبق Student_Marks طاولة:

 SELECT * FROM Student_Marks; 

هوية الطالب الطالب_الاسم_الأول الطالب_الاسم_الأوسط اسم_الطالب_الأخير Student_Class Student_City Student_State Student_Marks
4001 آمن روي شارما 4 شانديغار البنجاب 88
4002 فيشال جور شارما 8 مورتال هاريانا 95
4007 راج سينغانيا غوبتا 6 غازي آباد ولاية اوتار براديش 91
4004 ياش شوبرا سينغانيا 9 جايبور راجستان 85
4011 فيناي شارما روي 8 شانديغار البنجاب 94
4006 مانوج سينغانيا غوبتا 5 غازي آباد ولاية اوتار براديش 83
4010 كبش رحيم غوبتا 9 لكناو ولاية اوتار براديش 89

الاستعلام 1: يستخدم استعلام SELECT التالي وظيفة SUBSTR مع عمود Student_Last_Name الموجود في جدول Student_Marks أعلاه:

 SELECT Student_Last_Name, SUBSTR(Student_Last_Name, 2, 4) AS SUBSTR_2_4 FROM Student_Marks; 

يعرض بيان SQL هذا الأحرف الأربعة بعد 2اختصار الثانيموقف الاسم الأخير لكل طالب.

انتاج:

اسم_الطالب_الأخير SUBSTR_2_4
شارما ضرر
شارما ضرر
غوبتا com.upta
سينغانيا إنجليزي
روي المحدودة
غوبتا com.upta
غوبتا com.upta

الاستعلام 2: يستخدم استعلام SELECT التالي وظيفة SUBSTR مع عمود Student_Last_Name الموجود في جدول Student_Marks أعلاه:

 SELECT Student_Last_Name, SUBSTR(Student_Last_Name, -3, 2) AS SUBSTR_-3_2 FROM Student_Marks; 

يعرض بيان SQL هذا الحرفين من الموضع الأخير الثالث للاسم الأخير لكل طالب.

بهارتي جها

انتاج:

اسم_الطالب_الأخير SUBSTR_-3_2
شارما جمهورية مقدونيا
شارما جمهورية مقدونيا
غوبتا نقطة
سينغانيا في
روي ريال عماني
غوبتا نقطة
غوبتا نقطة