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

نام تاپیک: ()ROW_NUMBER در sql 2000

  1. #1
    کاربر تازه وارد آواتار reza_moon_mordad
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    60

    ()ROW_NUMBER در sql 2000

    آیا روشی شبیه به تابع ()ROW_NUMBER در sql 2000 وجود داره؟
    ممنون میشم اگه توضیح بدین.

  2. #2

    نقل قول: ()ROW_NUMBER در sql 2000

    بسته به این که چه استفاده ای از این تابع می خواهین بکنین راه حل های جایگزینی (Alternative) وجود دارد.

    مثلا با کمک تابع Identity_into می توانین به هر یک از سطرهای جدول یک شماره دهین.
    یا با کمک Cursor می توانین یک کارهایی انجام دهین.
    وبلاگ من (Advanced SQL Querying)

  3. #3
    کاربر دائمی آواتار Kamyar.Kimiyabeigi
    تاریخ عضویت
    خرداد 1384
    محل زندگی
    تهران
    پست
    1,276

    نقل قول: ()ROW_NUMBER در sql 2000

    سعي كنين ازcursor اصلا استفاده نكنين

  4. #4
    کاربر جدید
    تاریخ عضویت
    تیر 1385
    محل زندگی
    تهران
    پست
    27

    نقل قول: ()ROW_NUMBER در sql 2000

    select (select count(*) from TableName where (PrimaryKey <= c.PrimaryKey)) as RowNum, *
    from TableName c
    order by PrimaryKey

  5. #5
    کاربر تازه وارد آواتار reza_moon_mordad
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    60

    نقل قول: ()ROW_NUMBER در sql 2000

    نقل قول نوشته شده توسط Kamyar.Kimiyabeigi مشاهده تاپیک
    سعي كنين ازcursor اصلا استفاده نكنين
    دلیلش رو میشه ذکر کنید.

  6. #6

    نقل قول: ()ROW_NUMBER در sql 2000

    نقل قول نوشته شده توسط reza_moon_mordad مشاهده تاپیک
    دلیلش رو میشه ذکر کنید.
    Cursor در واقع هر سطر را جدا گانه استخراج و بازیابی (Fetch) می کند که هر کدام یک Query محسوب می شوند. به همین علت می تواند هزینه ی زیادی برای سیستم داشته باشد.

    ولی در بعضی از موارد راه حل های Cursor-Based حتی خیلی بهتر از Set-based است!

    در مورد سوال شما روش Identity سریعترین روش است.


    Select *, RowID=Identity(1,1)
    Into New_Table
    From Your_Table
    وبلاگ من (Advanced SQL Querying)

  7. #7
    کاربر تازه وارد آواتار reza_moon_mordad
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    60

    نقل قول: ()ROW_NUMBER در sql 2000

    نقل قول نوشته شده توسط msalim مشاهده تاپیک
    بسته به این که چه استفاده ای از این تابع می خواهین بکنین راه حل های جایگزینی (Alternative) وجود دارد.

    مثلا با کمک تابع Identity_into می توانین به هر یک از سطرهای جدول یک شماره دهین.
    یا با کمک Cursor می توانین یک کارهایی انجام دهین.
    ممنون از پاسختون
    می خوام به هر سطری یک id اختصاص بدم و جهت (paging,sorting,...) از اون id استفاده کنم.

  8. #8

    نقل قول: ()ROW_NUMBER در sql 2000

    تابع Row_Number یک قابلیتی به نام Partition دارد که قدرت این تابع را افزایش می دهد. منظورم این بود که مثلا از این قابلیت هم می خواهین استفاده کنین، یعنی دنبال یک راه حل جایگزین کاملا برابر و یکسان (equivalent method) هستین.

    ولی با این توضیحات به نظر می رسه بهترین گزینه این است که از تابع Identity استفاده کنین و نتیجه را در یک جدول موقت (Temporary) ذخیره کنین.

    البته با SubQuery هم می توانین این کار را انجام دهین ولی نیاز به Query های پیشرفته ای دارین (فرض کنین جدول شما کلید اصلی ندارد و داده های تکراری دارین....)

    برای اطلاعات در این مورد می توانین کتاب Inside Microsoft SQL Server T-SQL Querying رو مطالعه کنین فصل مربوط به Ranking Function.
    وبلاگ من (Advanced SQL Querying)

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

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