Архив метки: denali

SQL Server 2012. Несколько способов динамической сортировки

Добрый день!
Сегодня, изучая новые возможности SQL Server 2012, я поэкспериментировал с несколькими способами динамической сортировки.

Допустим мы имеем таблицу

table1
(
 ID INT,
 Name1 varchar(100),
 Name2 varchar(100),
 Name3 varchar(100)
)

И нам необходимо по какому-то признаку сортировать данные при выборке из таблицы по разным столбцам

Читать далее

Новые функции Lead & Lag в MS SQL 2012 (Denali)

С новой версией SQL Server 2012 мы встретим много новых возможностей. Про одну из них я расскажу Вам сегодня.

Это функции Lead и Lag.

Что это за функции ?

Это функции доступа к данным, которые граничат с той или иной строкой не используя self-соединений.

Читать далее

Конкатенация в MS SQL 2012(Denali)

Что такое конкатенация ?

Конкатенация(сцепление) — операция склеивания объектов линейной структуры, обычно строк. Например, конкатенация слов «микро» и «мир» даст слово «микромир».

Казалось бы зачем еще раз возвращаться к этой теме, ведь все мы хорошо знаем как это работает в MS SQL. Все это хорошо реализовано через оператор «+». Т.е.

select 'Вася' + ' '+'тракторист'

выдаст нам  «Вася тракторист»

MS SQL 2012(Denali) предлагает нам новую строковую функцию — CONCAT. Какие же преимущества данной функции перед использованием «+» ?

Читать далее

Постраничный вывод данных MS SQL Denali (Paging)

Рассматривая новые возможности Microsoft SQL Server Denali мы увидели новую возможность для полноценной реализации постраничного вывода информации.

В доступных ранее версиях SQL сервера мы использовали подобный скрипт:

DECLARE @NumberOfRows INT = 10
DECLARE @DesiredPageNumber INT = 5
SELECT *
FROM
  (
  SELECT RowNum = ROW_NUMBER() OVER (
    ORDER BY EmployeeID), *
   FROM HumanResources.Employee
  ) AS a
WHERE RowNum > (@NumberOfRows * (@DesiredPageNumber - 1))
AND RowNum <= (@NumberOfRows * (@DesiredPageNumber - 1)) + @NumberOfRows
ORDER BY EmployeeID

@NumberOfRows INT = 10 — Количество строк, которые Вы хотите видеть на странице
@DesiredPageNumber INT = 5 — Номер страницы

В свежей же версии SQL сервера нас обрадовали более удобной и более производительной реализацией вопроса, который нас интересует.

Читать далее

MS SQL 2011 (Denali) Последний день месяца

С выходом MS SQL 2011 (Denali) появилась очень толковая функция получения последнего дня месяца EOMonth()

Синтаксис:

EOMONTH (start_date, [month_to_add]).

Функция дает возможность получить последний день start_date месяца.

По умолчанию функция может вызываться без параметра  [month_to_add], т.е.

конструкция

select EOMonth('2011-08-25')

вернет значение ‘2011-08-31 00:00:00’

А вот,

select EOMonth('2011-08-25', -1)

вернет последний день июля, т.е. 30 июля 2011.

Теперь же стало удобнее высчитать и первый день месяца с помощью это функции

select DATEADD(day, 1, EOMONTH(GETDATE(), -1))