কখনও কখনও আমাদের ডেটাতে একটি স্ট্রিং ভ্যালুর শুধু একটি অংশ প্রদর্শন করার প্রয়োজন पड़ে। একটি স্ট্রিং ফাংশন আছে যা আমরা ব্যবহার করি যেটি কল করা হয় SUBSTR()। এছাড়া একটি সমতুল্য ফাংশন আছে যেটি কল করা হয় SUBSTRING()। এই আর্টিকেলে, আমরা SQL-এ এই সাবস্ট্রিং ফাংশন ব্যবহার করার পদ্ধতি কভার করব।
প্রস্তুতি
এখানে এই আর্টিকেলে ব্যবহৃত SQL Fiddle আছে। স্কিমা নিম্নরূপ:
create table names ( id INT, name VARCHAR(50), age INT, gender VARCHAR(50) ); insert into names (id, name, age, gender) values (1, 'Bret Starkings', 55, 'M'); insert into names (id, name, age, gender) values (2, 'Bobbye Eyckel', 76, 'F'); insert into names (id, name, age, gender) values (3, 'Barbie Veschi', 50, 'F'); insert into names (id, name, age, gender) values (4, 'Electra Blazewicz', 47, 'F');
আমরা SUBSTR() ফাংশন ব্যবহার করি name কলাম থেকে একটি অংশ পাওয়ার জন্য। ফাংশনটির সিনট্যাক্স নিম্নরূপ:
SUBSTR(column_name, position, num_letters);
ফাংশনটি তিনটি প্যারামিটার নেয়: কলাম বা স্ট্রিং যেটি থেকে আমরা সাবস্ট্রিং বের করতে চাই, স্ট্রিং-এ একটি 원-বেজড スタার্ট পজিশন (ইন্ডেক্সিং যা ১ থেকে শুরু হয় ০ না), এবং ক্যারেক্টার লেঙ্গথের সংখ্যা। আপনি যদি name কলামে এটি করলে, SQL স্টেটমেন্টটি হবে:
SELECT name, SUBSTR(name, 1, 4) AS NAME_SUBSTRING, age, gender FROM names;
এবং কোডটি ফলাফল দেবে:
| name | NAME_SUBSTRING | age | gender |
| Bret Starkings | Bret | 55 | M |
| Bobbye Eyckel | Bobb | 76 | F |
| Barbie Veschi | Barb | 50 | F |
| Electra Blazewicz | Elec | 47 | F |
| Estrella Borleace | Estr | 57 | F |
এই ফাংশনটির থার্ড প্যারামিটার বাদ দিয়ে দেয়া যেতে পারে আপনি যদি চান:
SELECT name, SUBSTR(name, 4) AS NAME_SUBSTRING, age, gender FROM names;
| name | NAME_SUBSTRING | age | gender |
| Bret Starkings | t Starkings | 55 | M |
| Bobbye Eyckel | bye Eyckel | 76 | F |
| Barbie Veschi | bie Veschi | 50 | F |
| Electra Blazewicz | ctra Blazewicz | 47 | F |
| Estrella Borleace | rella Borleace | 57 | F |
আপনি পজিশনের জন্য নেগেটিভ ভ্যালুও ব্যবহার করতে পারেন:
SELECT name, SUBSTR(name, -4) AS NAME_SUBSTRING, age, gender FROM names;
| name | NAME_SUBSTRING | age | gender |
| Bret Starkings | ings | 55 | M |
| Bobbye Eyckel | ckel | 76 | F |
| Barbie Veschi | schi | 50 | F |
| Electra Blazewicz | wicz | 47 | F |
| Estrella Borleace | eace | 57 | F |
যেকোনো SQL ফাংশনের মত, সিনট্যাক্স কিছুটা ভিন্ন হতে পারে আপনি কোন টাইপের ডেটাবেস ব্যবহার করছেন তার উপর নির্ভর করে। সাধারণ কনসেপ্ট একই। শুধু মনে রাখবেন পজিশন প্যারামিটারের জন্য ইন্ডেক্সিং ১ থেকে শুরু হয় ০ না, এবং আপনি আপনার কোয়েরি বিল্ড করতে পারবেন ভালোভাবে।