0

HI, Я хочу написать partiton в sql server 2008 для моей системы управления автопарком. Я хочу написать функцию разбиения такой, что -значения (номер транспортного средства), например, mh-30-q-126, mh-30-a-126, mh-12-fc-126, должны быть перемещены в соответствующую партину, в зависимости от средних значений, как, д, а, Ъ соответственноdatabase partiton Функция (sql server 2008)

Мой пробной функции: -

CREATE PARTITION FUNCTION [partition](varchar(20)) 
AS RANGE RIGHT 
FOR VALUES ('%a%', '%G%', '%Z%') 

эта функция перемещает все (все значения) данные в разделе 4.

CREATE PARTITION FUNCTION [partition](varchar(20)) 
AS RANGE RIGHT 
FOR VALUES ('a', 'G', 'Z') 

Этот раздел не удовлетворяет меня в плане, где я хочу, чтобы отсортировать значения, которые находятся в середине eg.mh-30-ц-126 ..здесь я хочу до заданного значения «Q», чтобы перейти к соответствующему partion ,,, плз расскажите мне сказать, как написать эту функцию

ответ

1

вы не можете напрямую из-за того, как PARTITION работает

«boundary_value» является постоянным, и вы не можете использовать LIKE.

Все, что я могу предложить, это вычисленный столбец, который извлекает нужные значения и разделяет на них. Однако у вас могут быть значения, которые не поддаются согласованному анализу.

mh-30-q-126 
mh-30-a-126 
mh-12-fc-126 

Примечание: Я не пробовал это. Обычно я разделяю дату или что-то в этом роде.

Однако я также не разбивал бы разделы, если бы мне действительно не приходилось, например, 100 миллионов строк + из-за предполагаемых накладных расходов при разделении. Вам нужно разбить?