2009-11-02 171 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億行+因爲在分區時隱含開銷。你需要分區嗎?