Використання фільтра top з параметром with ties, windows it pro
Надіслати заявку на отримання матеріалів
Коли під час навчальних занять з T-SQL ми обговорюємо фільтр TOP і згадується параметр WITH TIES, я часто бачу здивовані обличчя слухачів. Очевидно, багатьом невідомо про існування цього параметра і його призначення, хоча він з'явився в фільтрі TOP в версії SQL Server 7.0.
Розглянемо наступний запит:
Цей запит повертає три останніх замовлення. Але оскільки стовпець orderdate не унікальний, не можна визначити переваги між рядками з однаковою датою. Через це запит стає недетермінованим. Порядок доступу до рядків з однаковою датою визначається порядком фізичного доступу. Завдяки параметру WITH TIES виконання запиту не зупиняється негайно після того, як повернуто заданий число рядків, а видаються всі зв'язки з останнім рядком з урахуванням елементів впорядкування (в даному випадку orderdate). Це означає, що ви можете отримати більше рядків, ніж було запитано, але відбір рядків стає детермінованим.
Застосувати цей параметр з нашим запитом можна наступним чином:
Тепер, коли ми з'ясували можливості параметра WITH TIES, пропоную вам невелику задачу. Перш ніж запустити наведений нижче запит, спробуйте відповісти, що він робить.
Виконайте наступний програмний код, щоб отримати відповідь:
Ваш відповідь була вірним?
Поділіться матеріалом з колегами і друзями