جستجو برای:
  • تقویم آموزشی
  • آموزش آنلاین
  • فرم پیش ثبت نام
  • فرم درخواست مدرک
  • وبینار
  • وبینارهای آموزشی
  • بین الملل
    • آموزشگاه های بین المللی
    • آزمون های بین المللی
  • دوره ها
    • امنیت
      • EC-Council
      • F5
      • Fortinet
      • ISACA
      • ISC2
      • Juniper
      • Payment Security
      • SANS
      • SCADA
      • Secure coding
      • SOC
      • Splunk
    • بانک اطلاعاتی
      • Oracle
      • SQL Server
    • هوش مصنوعی
    • تحول دیجیتال
    • گرافیک
    • برنامه نویسی
      • متخصص .net
      • متخصص php
      • متخصص Java
      • متخصص جاوا اسکریپت
      • متخصص پایتون
      • متخصص Front End
      • متخصص UI/UX
    • ذخیره و بازیابی اطلاعات
      • Big Data
      • EMC
      • HP
      • Netbackup
      • veeam
    • شبکه
      • Cisco Old Level
      • Cisco New Level
      • CompTIA
      • EPI
      • آموزش Linux
      • Microsoft
      • Mikrotik
      • SolarWinds
    • کارکنان دولت
    • مجازی سازی
      • Cloud computing
      • Hyper-V
      • VMware
      • AWS
      • Azure
    • Devops
    • مخابرات
    • مدیریت فناوری اطلاعات
      • ISO 27001
      • IT Management
      • Project Management
    • ارزهای دیجیتال
    • اتوماسین صنعتی و ابزار دقیق
    • ویژه دوران
      • کارگاه ها و سمینارها
      • محصولات دوران
  • ویدئوها
  • بلاگ
  • آموزش، توانمندسازی، استخدام
  • آکادمی خوزستان
 
  • 021-43589
  • دعوت به همکاری
  • درباره ما
  • تماس با ما
  • مجله اینترنتی گروه دوران
آموزشگاه آکادمی دوران | برگزاری دوره های آموزشی تخصصی IT
دسته بندی‌ دوره‌ها
  • شبکه
    • Microsoft
    • SolarWinds
    • CompTIA
    • Cisco Old Level
      • Cisco New Level
    • Mikrotik
    • آموزش Linux
    • EPI
  • مخابرات
    • مخابرات
  • امنیت
    • ISC2
    • F5
    • EC-Council
    • Juniper
    • SOC
    • Fortinet
    • SANS
    • SCADA
    • ISACA
    • Secure coding
    • Payment Security
    • Splunk
  • مجازی سازی
    • Hyper-V
    • Cloud computing
    • VMware
    • AWS
    • Azure
  • Devops
    • Devops
  • مدیریت فناوری اطلاعات
    • ISO 27001
    • IT Management
    • Project Management
  • تحول دیجیتال
  • هوش مصنوعی
  • برنامه نویسی
    • متخصص پایتون
    • متخصص .net
    • متخصص جاوا اسکریپت
    • متخصص Java
    • متخصص Front End
    • متخصص UI/UX
    • متخصص php
  • گرافیک
  • ذخیره و بازیابی اطلاعات
    • Big Data
    • HP
    • EMC
    • Netbackup
    • veeam
  • بانک اطلاعاتی
    • Oracle
    • SQL Server
  • دیجیتال مارکتینگ
    • دیجیتال مارکتینگ
  • ارزهای دیجیتال
    • ارزهای دیجیتال
  • اتوماسین صنعتی و ابزار دقیق
  • ویژه دوران
    • کارگاه ها و سمینارها
    • محصولات دوران
    • کارکنان دولت
0

ورود و ثبت نام

  • تقویم آموزشی
  • آموزش آنلاین
  • وبینارهای آموزشی
  • بین الملل
    • آموزشگاه های بین المللی
    • آزمون های بین المللی
  • فرم پیش ثبت نام
  • فرم درخواست مدرک
  • ویدئوها
  • شعب آکادمی
    • آکادمی خوزستان
    • آکادمی بندرعباس
  • آموزش، توانمندسازی، استخدام

بلاگ

آموزشگاه آکادمی دوران | برگزاری دوره های آموزشی تخصصی IT بلاگ مقالات بانک اطلاعاتی کوئری نویسی در SQL Server 2022

کوئری نویسی در SQL Server 2022

1403/02/04
ارسال شده توسط soheili
مقالات بانک اطلاعاتی
377 بازدید
بنر مقاله کوئری نویسی در SQL Server 2022

دستور With Ties :

دوستان برای اینکه با مفهوم With Ties به درستی آشنا شوید، بهتر است به این مثال توجه نمایید. فرض کنید رئیس یک دانشگاهی می خواهد سه  نفر اول دانشگاه خود را بورسیه کند. طی یک جلسه ایی ، تصمیم می گیرد که سه نفری که معدل آنها از همه بالاتر است را نتخاب نماید. خب در این دانشگاه، نفر اول معدلش 20 می باشد که انتخاب می شود و نفر دوم کسی که معدل او 19 شده است را انتخاب می شود و نفر سوم کسی که معدلش 18 شده است را نیز انتخاب می شود. در اینجا بر حسب اتفاق نفر چهارم هم معدلش 18 می باشد. لذا وی نزد رئیس دانشگاه رفته و اعتراض خود را مبنی بر اینکه معدل وی نیز 18 می باشد را نیز عنوان می کند. حال باید رئیس دانشگاه تصمیم سخت تری را بگیرد. یا باید به معاون خود بگوید که اگر نفرات دیگری معدلشان 18 است را نیز جهت بورسیه شدن انتخاب نمایید و یا اینکه شرایط را تغییر داده و مثلا بگوید که کسی علاوه بر بالا بودن معدل ، باید تعداد واحد های پاس شده بیشتری نیز داشته باشد و یا تصمیم دیگر را اتخاذ نماید.

فرض کنید که همان تصمیم اول را بگیرد ، یعنی اگر افرادی دیگری بودن که معدلشان 18 بود نیز انتخاب شوند. در این صورت شما می توانید جهت استخراج این افراد در اسکیوال سرور از دستور With Ties استفاده نمایید.

دستور With Ties مطابق شکل زیر بعد از دستور Top N می آید. به این نکته هم دقت کنید که کلمه With به رنگ آبی رنگ ظاهر می شود ولی کلمه Ties به رنگ سیاه ظاهر می شود. در ضمن بعد از دستور With Ties ، فیلدها یا ستونهایی از جدول را که نیاز داریم، تایپ می نماییم.

نکته Performance ایی : تا جایی که می توانید جهت نمایش خروجی دستور Select از ستاره استفاده نکنید.

علت استفاده نکردن از کاراکتر ستاره در دستور Select :

1 – ترافیک شبکه بیشتر می شود.

2 – زمان اجرای کوئری بیشتر می شود.

3 – کوئری کند می شود.

4 – کوئری هایی دیگری ممکن است ، منتظر (wait) بمانند تا نتیجه این کوئری به اتمام برسد.

5 – IO کوئری بالا می رود.

6 – احتمال استفاده از ایندکس نامناسب نیز بالا می رود.

ساختار مربوط به دستور With Ties :

Select Top N With Ties *

From TableName

Order by ColumnName

 

تذکر : اگر به ساختار فوق دقت نمایید دستور with Ties بعد از Top N و قبل از نام ستون ها یا ستاره می آید.

تذکر مهم : اگر از دستور with Ties استفاده می کنید، شما باید حتما از دستور order by  نیز استفاده نمایید.

مثال : کوئری بنویسید که در دیتابیس Northwind و از جدول Products تعداد 9 کالای ارزان جدول Products (در دیتابیس Northwind) را نمایش دهد ؟ خب اگر دقت کنید کالای دهم نیز هم قیمت با کالای نهم می باشد، برای اینکه کالای دهم و به بعد نمایش داده شود شما باید از دستور with Ties استفاده نمایید(به مثال زیر دقت کنید).

Select Top 9 With Ties *

From [dbo].[Products]

order by UnitPrice

 

خروجی کوئری فوق به صورت زیر است (به شکل زیر دقت کنید):

ties

همانطور که در شکل فوق مشاهده می کنید ، علارقم اینکه ما نه رکورد را خواسته بودیم، ولی در خروجی ده رکورد ظاهر شد. دلیل این امر این است که دو رکورد آخر هم قیمت می باشند.

 

مثال : کوئری بنویسید که در ستون(فیلد) Availability هشت امین دسترسی پذیری دسترسی را از (در دیتابیس AdventureWorks2019 و از جدول [Production].[Location]) نمایش دهد؟

از آنجایی که یازدهم امین دسترسی پذیری مطابق شکل زیر عدد 120 می باشد، ولی همانطور که در شکل زیر مشاهده می کنید رکوردهای دوازده و سیزده و چهارده نیز مقدار فیلد Availability شان نیز عدد 120 می باشد، لذا در این جا نیز باید از دستور with Ties استفاده نمایید تا مقادیر مشابه آخرین رکورد را در صورت وجود ، بیاورد.

 

 

نحوه نوشتن این کوئری به صورت زیر می باشد :

SELECT TOP (11) With Ties *

FROM [AdventureWorks2019].[Production].[Location]

Order by [Availability]

 

تذکر مهم : جلو دستور order by باید ستونی استفاده شود که مقادیر تکراری با مقدار آخرمان دیده می شود. در غیر این صورت خروجی شما درست نخواهد بود.

 

گردآورنده: مهندس غلامحسین عبادی

اشتراک گذاری:
در تلگرام
کانال ما را دنبال کنید!
در اینستاگرام
ما را دنبال کنید!
مطالب زیر را حتما بخوانید
  • اسکیمر
    اسکیمر چیست و چگونه اسکیم شدن را تشخیص دهیم

    3k بازدید

  • مدیریت دسترسی ممتاز
    PAM چیست؟ چرا PAM برای سازمان شما مهم است؟

    2.2k بازدید

  • علم داده دیتا ساینس
    علم داده یا دیتا ساینس (Data Science) چیست و چه کاربردهایی دارد؟

    678 بازدید

  • دواپس چیست
    DevOps چیست؟ مهندس دواپس چه مهارت هایی باید داشته باشد؟

    113 بازدید

  • آموزش SQL
    آموزش sql

    866 بازدید

  • حمله‌‌های تزریق SQL
    حمله های تزریق SQL

    1.89k بازدید

قدیمی تر معروف‌ترین سوئیچ‌های بازار ایران
جدیدتر کوئری نویسی در SQL Server 2022 بخش دوم

دیدگاهتان را بنویسید لغو پاسخ

فرصت بی نظیر ورود به باز کار
دسته‌های دوره های آموزشی
  • آموزش دوره های devOPS
  • اتوماسین صنعتی و ابزار دقیق
  • ارزهای دیجیتال
  • امنیت
    • EC-Council
    • F5
    • Fortinet
    • ISACA
    • ISC2
    • Juniper
    • Payment Security
    • SANS
    • SCADA
    • Secure coding
    • SOC
    • Splunk
  • بانک اطلاعاتی
    • Oracle
    • SQL Server
  • برنامه نویسی
    • IOS
    • programming & Web
    • متخصص C#
    • متخصص PHP
    • متخصص UI/UX
    • متخصص پایتون
    • متخصص جاوا
    • متخصص جاوا اسکریپت
    • متخصص فرانت اند
  • تحول دیجیتال
  • درحال برگزاری
  • دیجیتال مارکتینگ
  • ذخیره و بازیابی اطلاعات
    • Big Data
    • EMC
    • HP
    • Netbackup
    • veeam
  • شبکه
    • Cisco Old Level
      • Cisco New Level
    • CompTIA
    • EPI
    • Microsoft
    • Mikrotik
    • SolarWinds
    • آموزش Linux
  • کارکنان دولت
  • گرافیک
  • مجازی سازی
    • AWS
    • Azure
    • Cloud computing
    • Hyper-V
    • VMware
  • مخابرات
  • مدیریت فناوری اطلاعات
    • ISO 27001
    • IT Management
    • Project Management
  • هوش مصنوعی
  • ویژه دوران
    • کارگاه ها و سمینارها
    • محصولات دوران

درباره ما

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

تماس با ما

  • تهران،خیابان بهشتی ،خیابان پاکستان ، کوچه حکیمی، پلاک 12
  • 021-43589
  • 021-88172361 اضطراری
  • 021-88172365 اضطراری
  • academy@douran.ir
Icon-instagram Icon-send-2 Linkedin-in Tape

پیوندهای مهم

  • کتابخانه
  • مجوزها
  • مشتریان
  • لابراتوار
  • فضای آموزشی
  • بلاگ
  • گروه دوران
  • دورتال

نماد اعتماد الکترونیک

تقویم زمستانی
تمامی حقوق برای آکادمی دوران محفوظ می باشد.

ورود

رمز عبور را فراموش کرده اید؟

هنوز عضو نشده اید؟ عضویت در سایت