2009-11-02 119 views
0

嗨, 我想为我的车队管理系统在sql server 2008中编写partiton。 我想写一个分区函数,使得像例如mh-30-q-126,mh-30-a-126,mh-12-fc-126那样的 - 值(车辆编号)应该移动到相应的部分, 取决于中间值等,q,A,FC分别数据库部分函数(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') 

此分区不满足我在术语其中i想值这是在中间eg.mh-30-Q-126 ..here我想要指定值“Q”排序移动到各自partion ,,, PLZ告诉告诉我怎么写这个函数

回答

1

你不能直接,因为如何PARTITION工作

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

我可以建议的是一个计算列,提取您想要的值并对其进行分区。 但是,您可能有不适合一致解析的值。

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

注意:我没有试过这个。我通常会在某个日期或类似的东西上进行分区。

但是,除非真的必须分区,否则我不会分区,就像1亿行+因为在分区时隐含开销。你需要分区吗?