T-SQL তে লুপ এবং ইটেরেশন ব্যবহারের জন্য বিভিন্ন ধরনের লুপ রয়েছে, যেমন WHILE লুপ, FOR লুপ, এবং CURSOR। T-SQL এ ইটেরেশন বা পুনরাবৃত্তি (repetition) কাজ করতে হলে লুপ ব্যবহৃত হয়, যা নির্দিষ্ট শর্তের ভিত্তিতে একাধিক বার একটি কোড ব্লক চালাতে সাহায্য করে।
এখানে কিছু সাধারণ লুপ এবং ইটেরেশন উদাহরণ দেওয়া হলো:
১. WHILE লুপ উদাহরণ
WHILE লুপ হল T-SQL তে সবচেয়ে সাধারণ লুপ, যা একটি শর্তের ভিত্তিতে কোড চালায় যতক্ষণ না শর্তটি মিথ্যা হয়।
উদাহরণ: ১ থেকে 5 পর্যন্ত সংখ্যা প্রদর্শন করা
DECLARE @Counter INT = 1;
WHILE @Counter <= 5
BEGIN
PRINT @Counter;
SET @Counter = @Counter + 1;
END
ব্যাখ্যা:
@Counterভেরিয়েবলটি 1 থেকে শুরু করে 5 পর্যন্ত বৃদ্ধি পায়।WHILEলুপটি যতক্ষণ পর্যন্ত@Counter <= 5থাকে, ততক্ষণPRINTকমান্ডের মাধ্যমে প্রতিটি সংখ্যাকে কনসোলে প্রদর্শন করবে।
আউটপুট:
1
2
3
4
5
২. FOR লুপ উদাহরণ
T-SQL তে সরাসরি FOR লুপ নেই, তবে FOR লুপের মত একটি লুপ তৈরি করতে WHILE লুপ ব্যবহার করা হয়। নিচে FOR লুপের মত কাজ করার উদাহরণ দেওয়া হলো।
উদাহরণ: 1 থেকে 10 পর্যন্ত সংখ্যা গুনা করা
DECLARE @Counter INT = 1;
WHILE @Counter <= 10
BEGIN
PRINT @Counter * 2; -- প্রতিটি সংখ্যাকে 2 দিয়ে গুণ করা
SET @Counter = @Counter + 1;
END
ব্যাখ্যা:
- এখানে
WHILEলুপ ব্যবহার করে, প্রতি বার গুন করে সংখ্যা প্রদর্শন করা হচ্ছে। @Counterভেরিয়েবলটি 1 থেকে 10 পর্যন্ত বৃদ্ধি পায় এবং প্রতি সংখ্যাকে 2 দিয়ে গুণ করা হয়।
আউটপুট:
2
4
6
8
10
12
14
16
18
20
৩. CURSOR এর মাধ্যমে ইটেরেশন উদাহরণ
CURSOR ব্যবহার করে একটি টেবিলের প্রতিটি রেকর্ডের ওপর লুপিং করা যায়। এটি বিশেষ করে তখন ব্যবহার হয় যখন আপনি একের পর এক রেকর্ডের সাথে কাজ করতে চান, যেমন একটি টেবিল থেকে প্রতিটি রেকর্ড নিয়ে প্রক্রিয়া সম্পাদন করা।
উদাহরণ: একটি টেবিলের সব রেকর্ড প্রিন্ট করা
DECLARE @EmployeeName NVARCHAR(100);
DECLARE EmployeeCursor CURSOR FOR
SELECT EmployeeName
FROM Employees;
OPEN EmployeeCursor;
FETCH NEXT FROM EmployeeCursor INTO @EmployeeName;
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT @EmployeeName;
FETCH NEXT FROM EmployeeCursor INTO @EmployeeName;
END
CLOSE EmployeeCursor;
DEALLOCATE EmployeeCursor;
ব্যাখ্যা:
EmployeeCursorএকটি কাস্টম কার্সর তৈরি করে যাEmployeesটেবিল থেকেEmployeeNameকলাম নির্বাচন করে।FETCH NEXTকমান্ডটি পরবর্তী রেকর্ডের মান নিয়ে আসে এবং এটি যতক্ষণ না শেষ হয়, ততক্ষণPRINTকমান্ডের মাধ্যমে নামগুলো প্রদর্শন করা হয়।@@FETCH_STATUSকার্সরটির অবস্থা পরীক্ষা করে, যে লাইনটি শেষ হয়েছে কি না।
আউটপুট:
Employeesটেবিলের সবEmployeeNameপ্রদর্শিত হবে (যে নামগুলি টেবিলে রয়েছে)।
৪. BREAK এবং CONTINUE
T-SQL এ BREAK এবং CONTINUE কমান্ডও ব্যবহার করা যেতে পারে, যা লুপের প্রবাহ পরিবর্তন করে। BREAK লুপটি সম্পূর্ণভাবে বন্ধ করে এবং CONTINUE পরবর্তী পুনরাবৃত্তি শুরু করে।
উদাহরণ: 1 থেকে 10 পর্যন্ত সংখ্যা, তবে 5 হলে স্টপ
DECLARE @Counter INT = 1;
WHILE @Counter <= 10
BEGIN
IF @Counter = 5
BEGIN
BREAK; -- লুপটি 5 এর পর বন্ধ হবে
END
PRINT @Counter;
SET @Counter = @Counter + 1;
END
ব্যাখ্যা:
- যখন
@Counterএর মান 5 হবে, তখনBREAKকমান্ডটি লুপটিকে সম্পূর্ণভাবে বন্ধ করে দেবে।
আউটপুট:
1
2
3
4
সারাংশ
- WHILE লুপ: শর্ত পূর্ণ না হওয়া পর্যন্ত লুপটি চলে।
- CURSOR: টেবিলের প্রতিটি রেকর্ড নিয়ে ইটেরেশন চালানোর জন্য ব্যবহৃত হয়।
- BREAK: লুপের প্রবাহ বন্ধ করার জন্য ব্যবহৃত হয়।
- CONTINUE: লুপের পরবর্তী পুনরাবৃত্তি শুরু করার জন্য ব্যবহৃত হয়।
T-SQL এ লুপ ও ইটেরেশন ব্যবহার করার মাধ্যমে আপনি ডেটাবেসের মধ্যে বিভিন্ন ধরনের কার্যক্রম (যেমন, গণনা, প্রক্রিয়া, ডেটা সংশোধন) করতে পারেন।