نمایش نتایج 1 تا 5 از 5

نام تاپیک: کاربرد CASE در عبارت SELECT

  1. #1

    کاربرد CASE در عبارت SELECT

    از آنجایی که دیدم CASE در دستور SELECT چه اهمیتی دارد، بر آن شدم که یک مقاله هر چند کم در این مورد بنویسم.

    این مقاله شامل 5 مثال می باشد که با استفاده از CASE به سادگی و زیبایی حل می شوند.

    امید وارم که مفید واقع شود.
    فایل های ضمیمه فایل های ضمیمه

  2. #2

    نقل قول: کاربرد CASE در گزاره SELECT

    ممنون
    ولی ای کاش یکروز زودتر میذاشتیش

  3. #3

    نقل قول: کاربرد CASE در گزاره SELECT

    مثال تکمیلی :
    نام ملبانانی را بدست آورید که
    یک : با قایق شماره 1 دو بار سفر کرده باشند.
    دو: با قایق شماره 2 سه بار سفر کرده باشند.
    سه: با قایق شماره 3 اصلا سفر نکرده باشند.
    چهار: در روز های 1 و یا 2 سفری نکرده باشند.


    SELECT SailorID
    FROM Travels t
    GROUP BY SailorID
    HAVING SUM(CASE WHEN Boatid=1 THEN 1 ELSE 0 END)=2
    AND SUM(CASE WHEN Boatid=2 THEN 1 ELSE 0 END)=3
    AND MAX(CASE WHEN Boatid=3 THEN 1 ELSE 0 END)=0
    AND MAX(CASE WHEN [day] IN(1,2) THEN 1 ELSE 0 END)=0
    آخرین ویرایش به وسیله محمد سلیم آبادی : جمعه 16 مرداد 1388 در 03:13 صبح
    وبلاگ من (Advanced SQL Querying)

  4. #4
    کاربر دائمی
    تاریخ عضویت
    مهر 1388
    محل زندگی
    شهر راز
    پست
    178

    نقل قول: کاربرد CASE در گزاره SELECT

    جناب msalim سلام.من مقالتون رو خوندم.ولي فك كنم يه چيز رو متوجه نشدم:
    معتي عبارت:

    CASE WHEN Boatid=1 THEN 1 ELSE 0 END

    معني قسمت دوم رو ميخوام.آيا عبارت case يه عبارت دو وضعيتيه كه false , true برميگردونه؟
    منتظر جوابتون هستم.

  5. #5

    نقل قول: کاربرد CASE در گزاره SELECT

    سلام،
    مطالب از Books Online:
    Evaluates a list of conditions and returns one of multiple possible result expressions.
    CASE has two formats:
    The simple CASE function compares an expression to a set of simple expressions to determine the result.

    The searched CASE function evaluates a set of Boolean expressions to determine the result.

    Both formats support an optional ELSE argument.
    Transact-SQL Syntax Conventions
    Syntax

    Simple CASE function:
    CASE input_expression
    WHEN when_expression THEN result_expression
    [ ...n ]
    [
    ELSE else_result_expression
    ]
    END
    Searched CASE function:
    CASE
    WHEN Boolean_expression THEN result_expression
    [ ...n ]
    [
    ELSE else_result_expression
    ]
    END



    همانطور که مشاهده می کنید عبارت/تابع CASE دو نوع فرمت داره. که من از نوع Searched اش استفاده کرده ام.
    به زبان ساده، اگر شرط اول درست بود مقدار بعد از THEN انتخاب می شه در غیر اینصورت شرط دوم چک میشه اگر درست بود انتخاب همینطور تا آخر و در نهایت مقدار بعد از ELSE انتخاب میشه. البته ELSE اختیاری هست. در صورتی که ELSE نداشته باشیم و هیچ کدام از عبارت های بولین هم TRUE نشه مقدار NULL برگردانده خواهد شد.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •