1

嗨,我想在 sql server 2008 中为我的车队管理系统编写分区。我想编写一个分区函数,例如 mh-30-q-126,mh-30-a-126,mh-12-fc-126 之类的 --values (车号)应该移动到相应的分区,具体取决于分别在 ,q,a,fc 等中间值上

我的试用功能:-

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')   

这个分区在我想对中间值进行排序方面不满足我,例如.mh-30-q-126 ..这里我想将目标值“q”移动到相应的分区,请告诉我这个函数怎么写

4

1 回答 1

1

您不能直接因为PARTITION的工作原理

“boundary_value”是一个常数,你不能使用 LIKE。

我只能建议一个计算列,它可以提取您想要的值并在此基础上进行分区。但是,您可能有不适合一致解析的值。

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

注意:我没有试过这个。我通常会在约会或类似的事情上进行分区。

但是,除非我真的不得不分区,否则我也不会分区,比如 1 亿行+,因为分区中隐含的开销。需要分区吗?

于 2009-11-02T09:15:34.330 回答