دستور CONTINUE  در پایگاه  داده SQL

تیم تحریریه 1404/01/01 0 52
لینک کوتاه https://zoheirsoftware.com/z/29c417b0b |
دستور CONTINUE  در پایگاه  داده SQL,کاربردهای دستور CONTINUE در SQL,نحوه ایجاد و استفاده از دستور CONTINUE در SQL

دستور CONTINUE  در پایگاه  داده SQL

دستور CONTINUE در SQL معمولاً در داخل حلقه‌های WHILE به کار می‌رود و باعث می‌شود اجرای حلقه از ابتدا ادامه یابد، بدون آنکه دستورات باقی‌مانده در تکرار جاری اجرا شوند.

این دستور زمانی مفید است که بخواهید تحت شرایط خاصی از اجرای بخش‌های مشخصی از کد صرف‌نظر کرده و مستقیماً به ارزیابی شرط حلقه برگردید.

به عنوان مثال، در یک حلقه که رکوردهای یک جدول را بررسی می‌کند، می‌توان با استفاده از CONTINUE از پردازش برخی رکوردهای خاص صرف‌نظر کرد.

این دستور باعث افزایش کارایی کد و جلوگیری از اجرای غیرضروری برخی عملیات می‌شود.

استفاده صحیح از CONTINUE در کنار سایر کنترل‌کننده‌های جریان مانند BREAK می‌تواند در بهینه‌سازی عملکرد کوئری‌ها و پردازش داده‌ها مؤثر باشد.

کاربردهای دستور CONTINUE در SQL

  • حذف برخی از داده‌ها از پردازش

    اگر در یک مجموعه داده، برخی از موارد نیازی به پردازش نداشته باشند، می‌توان با استفاده از CONTINUE از آن‌ها عبور کرد.
  • بهینه‌سازی اجرای حلقه

    به جای استفاده از چندین شرط تو در تو، CONTINUE به مدیریت بهتر جریان برنامه کمک می‌کند.
  • مدیریت استثناها

    در برخی موارد خاص، اگر داده‌ای نیاز به پردازش نداشته باشد، می‌توان با استفاده از CONTINUE اجرای آن بخش را رد کرد.

کاربردهای دستور CONTINUE

نحوه ایجاد و استفاده از دستور CONTINUE در SQL

برای درک بهتر CONTINUE، ابتدا یک مثال ساده از حلقه WHILE بدون استفاده از CONTINUE ارائه می‌شود:

مثال ۱: حلقه WHILE بدون استفاده از CONTINUE

DECLARE @Counter INT = 1;

WHILE @Counter <= 10

BEGIN

    PRINT 'عدد: ' + CAST(@Counter AS VARCHAR);

    SET @Counter = @Counter + 1;

END

نتیجه اجرای کد:

عدد: 1 

عدد: 2 

عدد: 3 

عدد: 4 

عدد: 5 

عدد: 6 

عدد: 7 

عدد: 8 

عدد: 9 

عدد: 10 

در این مثال، تمامی اعداد از ۱ تا ۱۰ چاپ می‌شوند.

 

مثال ۲: استفاده از CONTINUE برای رد کردن مقدار خاصی

فرض کنید که نمی‌خواهیم مقدار ۵ چاپ شود. در این حالت می‌توان از CONTINUE استفاده کرد:

DECLARE @Counter INT = 1;

WHILE @Counter <= 10

BEGIN

    IF @Counter = 5

    BEGIN

        SET @Counter = @Counter + 1;

        CONTINUE;

    END


    PRINT 'عدد: ' + CAST(@Counter AS VARCHAR);

    SET @Counter = @Counter + 1;

END

نتیجه اجرای کد:

عدد: 1 

عدد: 2 

عدد: 3 

عدد: 4 

عدد: 6 

عدد: 7 

عدد: 8 

عدد: 9 

عدد: 10 

توضیح کد:

وقتی مقدار @Counter = 5 باشد، دستور CONTINUE اجرا می‌شود.

در نتیجه، مقدار ۵ چاپ نمی‌شود و اجرای حلقه از ابتدا ادامه پیدا می‌کند.

 

مثال ۳: استفاده از CONTINUE برای رد کردن اعداد زوج

در این مثال فقط اعداد فرد بین ۱ تا ۱۰ چاپ خواهند شد:

DECLARE @Counter INT = 1;

WHILE @Counter <= 10

BEGIN

    IF @Counter % 2 = 0

    BEGIN

        SET @Counter = @Counter + 1;

        CONTINUE;

    END


    PRINT 'عدد فرد: ' + CAST(@Counter AS VARCHAR);

    SET @Counter = @Counter + 1;

END

نتیجه اجرای کد:

عدد فرد: 1 

عدد فرد: 3 

عدد فرد: 5 

عدد فرد: 7 

عدد فرد: 9 

توضیح:

وقتی مقدار @Counter عددی زوج باشد، دستور CONTINUE باعث می‌شود که آن عدد چاپ نشود.

به این ترتیب فقط اعداد فرد نمایش داده می‌شوند.

نکات مهم درباره دستور CONTINUE در SQL

  • CONTINUE فقط درون حلقه‌های کنترلی مانند WHILE استفاده می‌شود.

  • دستور CONTINUE باعث رد کردن بقیه کدهای حلقه در آن تکرار خاص می‌شود.

  • برای جلوگیری از اجرای بی‌نهایت حلقه، باید مقدار متغیر کنترلی قبل از CONTINUE افزایش داده شود.

  • بهینه‌سازی کد: استفاده از CONTINUE به جای چندین شرط IF تو در تو، کد را خواناتر و بهینه‌تر می‌کند.

نکات مهم درباره دستور CONTINUE

 

مثال ۴: استفاده از CONTINUE در حلقه WHILE برای رد کردن مقادیر خاص از جدول

در این مثال، فرض کنید یک جدول از مشتریان داریم و می‌خواهیم نام همه مشتریان را چاپ کنیم، اما مشتریانی که وضعیت آن‌ها غیرفعال (Inactive) است را رد کنیم.

  • ایجاد جدول و درج داده‌ها

CREATE TABLE Customers (

    ID INT PRIMARY KEY,

    Name VARCHAR(50),

    Status VARCHAR(10)

);


INSERT INTO Customers (ID, Name, Status) VALUES

(1, 'علی', 'Active'),

(2, 'زهرا', 'Inactive'),

(3, 'محمد', 'Active'),

(4, 'سارا', 'Inactive'),

(5, 'مهدی', 'Active');

کد استفاده از CONTINUE برای نمایش فقط مشتریان فعال

sql

Copy

Edit

DECLARE @ID INT = 1;

DECLARE @Total INT = (SELECT COUNT(*) FROM Customers);

WHILE @ID <= @Total

BEGIN

    DECLARE @Status VARCHAR(10);

    DECLARE @Name VARCHAR(50);


    SELECT @Status = Status, @Name = Name FROM Customers WHERE ID = @ID;


    IF @Status = 'Inactive'

    BEGIN

        SET @ID = @ID + 1;

        CONTINUE;

    END


    PRINT 'مشتری فعال: ' + @Name;

    SET @ID = @ID + 1;

END

نتیجه اجرای کد:

مشتری فعال: علی 

مشتری فعال: محمد 

مشتری فعال: مهدی 

 

نتیجه‌گیری

  • دستور CONTINUE یکی از دستورات کنترلی در SQL است که به مدیریت بهتر حلقه‌ها کمک می‌کند.
  • با استفاده از این دستور، می‌توان از اجرای بخش‌هایی از کد در برخی شرایط خاص جلوگیری کرد.
  • این دستور معمولاً در ترکیب با حلقه WHILE استفاده می‌شود تا از پردازش مقادیر خاص صرف‌نظر شود.
  • استفاده از CONTINUE باعث می‌شود کد خواناتر، ساده‌تر و کارآمدتر باشد.

مثال پروژه محور از  دستور CONTINUE 

پروژه: فیلتر کردن سفارش‌های نامعتبر در یک سیستم فروش

شرح پروژه:

در یک فروشگاه آنلاین، جدولی به نام Orders داریم که شامل اطلاعات سفارش‌ها است.

برخی سفارش‌ها نامعتبر هستند (مثلاً قیمت آن‌ها صفر است).

می‌خواهیم با استفاده از حلقه WHILE و دستور CONTINUE، فقط سفارش‌های معتبر را پردازش کنیم.

  • ایجاد جدول سفارش‌ها و درج داده‌ها

CREATE TABLE Orders (

    OrderID INT PRIMARY KEY,

    CustomerName VARCHAR(50),

    Amount DECIMAL(10,2) -- مبلغ سفارش

);


INSERT INTO Orders (OrderID, CustomerName, Amount) VALUES

(1, 'علی', 200),

(2, 'زهرا', 0),  -- سفارش نامعتبر

(3, 'محمد', 150),

(4, 'سارا', 0),  -- سفارش نامعتبر

(5, 'مهدی', 300);
  • پردازش سفارش‌های معتبر با استفاده از CONTINUE

DECLARE @OrderID INT = 1;

DECLARE @MaxOrders INT = (SELECT COUNT(*) FROM Orders);


WHILE @OrderID <= @MaxOrders

BEGIN

    DECLARE @Amount DECIMAL(10,2);

    DECLARE @CustomerName VARCHAR(50);


    -- دریافت اطلاعات سفارش

    SELECT @Amount = Amount, @CustomerName = CustomerName FROM Orders WHERE OrderID = @OrderID;


    -- اگر مبلغ سفارش صفر باشد، این سفارش پردازش نشود و به سفارش بعدی برویم

    IF @Amount = 0

    BEGIN

        SET @OrderID = @OrderID + 1;

        CONTINUE;

    END

    -- پردازش سفارش معتبر

    PRINT 'پردازش سفارش: ' + @CustomerName + ' - مبلغ: ' + CAST(@Amount AS VARCHAR);


    -- افزایش شمارنده

    SET @OrderID = @OrderID + 1;

END
  • خروجی اجرای کد:

پردازش سفارش: علی - مبلغ: 200 

پردازش سفارش: محمد - مبلغ: 150 

پردازش سفارش: مهدی - مبلغ: 300 

 

نتیجه:

سفارش‌های نامعتبر (با مبلغ صفر) نادیده گرفته شدند.

فقط سفارش‌های معتبر پردازش شدند.

CONTINUE باعث شد که کد مرتب‌تر و کارآمدتر شود.

 

دوره های مرتبط
آموزش Sql,آموزش sqlserver, آموزش جامع Sqlserver

آموزش پایگاه داده SqlServer

پایگاه داده Sqlserver یکی از پایگاه داده های مهم برای ذخیره اطلاعات محسوب میشود .

997,000 تومان

2.6k بازدید

ارسال دیدگاه

برای ارسال نظر لطفا ورود یا ثبت نام کنید.