HI, 我想在sql server 2008中为我的车队管理系统编写分区。 我想编写一个分区函数,使得 - 例如mh-30-q-126,mh-30-a-126,mh-12-fc-126的值(车辆编号)应该移动到相应的分区, 取决于中间值,如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')
这个分区不满足我的意思,我想对中间的值进行排序eg.mh-30-q-126 ..我希望将值“q”移动到相应的分区,,, 请告诉我如何编写此功能
答案 0 :(得分:1)
你不能直接因为PARTITION的工作原理
“boundary_value”是一个常量,你不能使用LIKE。
我所能建议的是一个计算列,它可以提取您想要的值并对其进行分区。 但是,您可能具有不适合一致解析的值。
mh-30-q-126
mh-30-a-126
mh-12-fc-126
注意:我没试过这个。我通常会在日期或类似的事情上进行分区。
但是,除非我真的需要,否则我也不会进行分区,例如1亿行+因为分区中隐含的开销。你需要分区吗?