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

نام تاپیک: کمک برای یک Query

  1. #1
    کاربر دائمی آواتار mahdi_negahi
    تاریخ عضویت
    آذر 1384
    محل زندگی
    www.iranbuycenter.com
    پست
    582

    کمک برای یک Query

    سلام دوستان

    من یک جدول دارم که سه ستون دارد می خواهم از این جدولم Query با شرایط زیر بگیرم :

    1-اگر کاربر برای سه ستون داده ای وارد کند هر سه ستون And شود

    2-اگر برای یکی از این سه ستون داده ای وارد کند 2 ستون باقی مانده مد نظر قرار نگیرد و هر داده ای داشته باشند

    توجه کنید که من می خواهم مثلا اگر کاربر برای 2 ستون داده وارد کند 2 ستون And و آن یک ستون باقی مانده اصلا مد نظر قرار نگیرد

  2. #2
    کاربر دائمی
    تاریخ عضویت
    دی 1383
    محل زندگی
    تهران
    پست
    558
    سلام
    فکر کنم قبلا زیاد تو سایت این بحث شده، با اینحال یه مثال :

    ALTER PROCEDURE usp_get_info
    ...
    @f1 INT = NULL
    , @f2 NVARCHAR(50) = NULL
    , @f3 CHAR(10) = NULL
    ...
    as
    begin
    DECLARE @str_select NVARCHAR(4000)
    SET @str_select = N''
    SET @str_select = N'SELECT f1, f2, f3 from tbl ' + CHAR(13)
    ...
    --شرط
    DECLARE @str_where NVARCHAR(2000)
    SET @str_where = ''
    --تعیین شرط
    IF (@f1 IS NOT NULL)
    BEGIN
    --تعیین شرطهای بعدی
    IF @str_where <> ''
    SET @str_where = @str_where + 'AND ' + CHAR(13)
    SET @str_where = @str_where + ' f1 = ' + CAST(@f1 AS VARCHAR(2)) ' ' + CHAR(13)
    END
    ...
    IF (@f2 IS NOT NULL)
    BEGIN
    --تعیین شرطهای بعدی
    IF @str_where <> ''
    SET @str_where = @str_where + 'AND ' + CHAR(13)
    SET @str_where = @str_where + ' f2 = N''' +@f1 ''' ' + CHAR(13)
    END
    ...
    --و الی آخر
    --یکی کردن عبارات برای انجام عمل جستجو
    IF @str_where <> ''
    BEGIN
    SET @str_select = @str_select + CHAR(13)
    + ' WHERE ' + @str_where + CHAR(13)
    END
    SET @str_select = @str_select + CHAR(13)
    + ' ORDER BY f1 DESC'
    --انجام جستجو
    EXEC(@str_select)
    end

  3. #3
    اگر حالتهای ممکن به همین دو مورد ختم میشه، بهتره دو SP داشته باشید. در Client کنترل کنید که کاربر برای کدوم ستونها مقدار داده، و با توجه به اون، SP مربوطه رو اجرا کنید. اما اگر تعداد حالتها بسیار زیاده، Dynamic TSQL روش مناسبیه

  4. #4
    کاربر دائمی آواتار mahdi_negahi
    تاریخ عضویت
    آذر 1384
    محل زندگی
    www.iranbuycenter.com
    پست
    582
    با تشکر ولی مهندس جون من این کارو برای یک جئول که 15 ستون دارد می خواهم انجام دهم و این چیزی که گفتم در مقیاس کوچک است

  5. #5
    پس از جواب آقای افرا باید استفاده کنید

تاپیک های مشابه

  1. مشکل گرفتن query با حرف 'ی' ؟
    نوشته شده توسط sasan_vm در بخش SQL Server
    پاسخ: 15
    آخرین پست: پنج شنبه 30 فروردین 1386, 13:18 عصر
  2. the query must be an updateable query
    نوشته شده توسط hamed_bostan در بخش VB.NET
    پاسخ: 2
    آخرین پست: چهارشنبه 08 فروردین 1386, 16:02 عصر
  3. مشکل در ثبت اطلاعات در query
    نوشته شده توسط maisam57 در بخش برنامه نویسی در Delphi
    پاسخ: 4
    آخرین پست: دوشنبه 03 مهر 1385, 09:17 صبح
  4. درخواست یک query
    نوشته شده توسط golagha_program در بخش Access
    پاسخ: 3
    آخرین پست: پنج شنبه 30 شهریور 1385, 12:20 عصر
  5. Query
    نوشته شده توسط حمیدرضاصادقیان در بخش برنامه نویسی در Delphi
    پاسخ: 3
    آخرین پست: پنج شنبه 30 شهریور 1385, 03:09 صبح

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

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