当前位置: 代码迷 >> Sql Server >> SQL SERVER是不是只支持范围分区,能支持=符号否
  详细解决方案

SQL SERVER是不是只支持范围分区,能支持=符号否

热度:8   发布时间:2016-04-24 18:34:42.0
SQL SERVER是否只支持范围分区,能支持=符号否?
大家知道,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 ('北京','北京');这样嘛
  相关解决方案