问题描述
嗨,康纳,
在进行以下分区之后,来自KISS系列的视频开始自己练习并进行查询:
在范围分区中,我想基于国家/地区列创建分区,并且属于AU的所有值都应转到AU_01分区,而NZ应转到NZ_01分区,
第一点是,我不能说分区AU_01值等于 ('AU') ->,所以只有特定分区才到这里?在下面的情况下,当我插入两行时,这些仅进入NZ。
在进行以下分区之后,来自KISS系列的视频开始自己练习并进行查询:
在范围分区中,我想基于国家/地区列创建分区,并且属于AU的所有值都应转到AU_01分区,而NZ应转到NZ_01分区,
第一点是,我不能说分区AU_01值等于 ('AU') ->,所以只有特定分区才到这里?在下面的情况下,当我插入两行时,这些仅进入NZ。
CREATE TABLE sku_RANGE
(
item VARCHAR2 (100),
loc VARCHAR2 (100),
country VARCHAR2 (10)
)
PARTITION BY RANGE
(country)
(
PARTITION au_01 VALUES LESS THAN ('AU'),
PARTITION NZ_01 VALUES LESS THAN ('NZ'));
INSERT INTO sku_RANGE
VALUES ('100', 'ABC', 'AU');
INSERT INTO sku_RANGE
VALUES ('100', 'ABC', 'NX');
SELECT *
FROM SKU_RANGE PARTITION (NZ_01);
专家解答
对于范围分区,您需要提供一个大于分区中的值的值。因此,要使NZ进入NZ_01,小于值必须为 'NZA' (或比 'NZ' 更大的其他值:
但是,如果您所拥有的只是这两个值,我建议改用列表分区:
CREATE TABLE sku_RANGE
(
item VARCHAR2 (100),
loc VARCHAR2 (100),
country VARCHAR2 (10)
)
PARTITION BY RANGE
(country)
(
PARTITION au_01 VALUES LESS THAN ('AUA'),
PARTITION NZ_01 VALUES LESS THAN ('NZA'));
INSERT INTO sku_RANGE
VALUES ('100', 'ABC', 'AU');
INSERT INTO sku_RANGE
VALUES ('100', 'ABC', 'NZ');
SELECT *
FROM SKU_RANGE PARTITION (NZ_01);
ITEM LOC COUNTRY
100 ABC NZ 但是,如果您所拥有的只是这两个值,我建议改用列表分区:
CREATE TABLE sku_list
(
item VARCHAR2 (100),
loc VARCHAR2 (100),
country VARCHAR2 (10)
)
PARTITION BY LIST
(country)
(
PARTITION au_01 VALUES ('AU'),
PARTITION NZ_01 VALUES ('NZ'));
INSERT INTO sku_list
VALUES ('100', 'ABC', 'AU');
INSERT INTO sku_list
VALUES ('100', 'ABC', 'NZ');
SELECT *
FROM SKU_LIST PARTITION (NZ_01);
ITEM LOC COUNTRY
100 ABC NZ 「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




