PostgreSQL中的条件索引
通过使用Oracle,我知道条件索引和CASE语句是可能的。但在PostgreSQL中有可能吗?例如,索引如下:PostgreSQL中的条件索引,postgresql,indexing,Postgresql,Indexing,通过使用Oracle,我知道条件索引和CASE语句是可能的。但在PostgreSQL中有可能吗?例如,索引如下: CREATE INDEX IX_INDEXNAME ON SOME_TABLE ( CASE WHEN COLUMN1 = 0 AND COLUMN2 = 'value' THEN SOME1_ID ELSE SOME2_ID END); 这已经是PostgreSQL的修改版本,因为Oracle case语句不同于Postgre
CREATE INDEX IX_INDEXNAME ON SOME_TABLE (
CASE
WHEN COLUMN1 = 0 AND COLUMN2 = 'value' THEN SOME1_ID
ELSE SOME2_ID
END);
这已经是PostgreSQL的修改版本,因为Oracle case语句不同于Postgres。如果可能的话,我该怎么做?或者如果这不可能,是否有其他方法实现它?您需要将
大小写
表达式括在括号中:
CREATE INDEX IX_INDEXNAME ON SOME_TABLE (
(CASE
WHEN COLUMN1 = 0 AND COLUMN2 = 'value' THEN SOME1_ID
ELSE SOME2_ID
END) );
是的,这是可能的。你的问题是什么?如果这是可能的,我该怎么做
是否创建了您拥有的索引?如果不是,是错误吗?[42601]错误:在“CASE”处或附近出现语法错误