大家知道,sql server的分区方式一般是按范围进行分区的,比如:
CREATE PARTITION FUNCTION myRangePF2 (int)
AS RANGE RIGHT FOR VALUES (1, 100, 1000);
CREATE PARTITION FUNCTION myRangePF3 (char(20))
AS RANGE RIGHT FOR VALUES ('EX', 'RXE', 'XR');
但是,无论是数字分区,还是字符分区,都是<=或者>,那么,我能否只写=呢?或者用LIKE?
实际情况是,比如:
我需要把:河南、河北、山东、北京等全国各地各制作成一个分区,如果不是这几个省的,就把他们分到另外一个默认的分区中,这是否能行呢?
谢谢
------解决方案--------------------
sql server中没有=、in的功能。
为了实现你的需求,建议,新建一个列,然后计算这个列的值,比如:
update 表
set range_col = case when xx in ('河南','河北','山东','北京')
then 1
else 2
end
然后,在用你上述的方法,做分区
------解决方案--------------------
你可以换个思维嘛,=也就是
CREATE PARTITION FUNCTION myRangePF3 (char(20))
AS RANGE RIGHT FOR VALUES ('北京','北京');这样嘛