Подтвердить что ты не робот

Разбиение таблиц с использованием 2 столбцов

Можно ли разбить таблицу на 2 столбца вместо 1 для функции разбиения?

Рассмотрим таблицу с тремя столбцами

    ID (int, primary key, 
    Date (datetime), 
    Num (int)

Я хочу разбить эту таблицу на 2 столбца: Date и Num.

Это то, что я делаю, чтобы разбить таблицу на 1 столбец (дата):

create PARTITION FUNCTION PFN_MonthRange (datetime)
AS
RANGE left FOR VALUES ('2009-11-30 23:59:59:997',
                       '2009-12-31 23:59:59:997',
                       '2010-01-31 23:59:59:997',
                       '2010-28-02 23:59:59:997',
                       '2010-03-31 23:59:59:997')
go
4b9b3361

Ответ 1

Плохая новость: Функция разделения должна быть определена в одном столбце.

Хорошая новость: Этот единственный столбец может быть сохраненным вычисленным столбцом, который представляет собой комбинацию из двух столбцов, которые вы 'пытаться разбивать на.

Ответ 2

Я нашел, что это было более легкое решение

select ROW_NUMBER() over (partition by CHECKSUM(value,ID) order by SortOrder) as Row From your_table

Ответ 3

Естественно, нет, вы не можете разбивать на два столбца в SQL Server.

Есть несколько вещей, которые вы могли бы сделать, иметь таблицу поиска, которую вы используете для извлечения, какое арбивное целое (разделение) каждое значение находится внутри, но у вас есть только 1000 разделов, поэтому они начнут занимать одно и то же пространство, Вычисляемый подход столбцов страдает этой же проблемой, у вас есть предел раздела 1k, скорее всего, вы его взорвите.

Я бы, вероятно, просто придерживался раздела даты и располагался прямо на 1-ом месяце, а не налево в последней части месяца.

Что вы намерены получить от второго значения раздела?