S02037
错误代码
S02037
报错信息
The '[not] in' predicate cannot be followed by columns from the partitioned table. Please use a subquery instead. RefId:S02037
错误原因
DolphinDB 不允许在 in/not in 表达式中将分布式表列用于右侧。以下几个查询都会导致此报错:
dbName = "dfs://test"
if (existsDatabase(dbName)) {
dropDatabase(dbName)
}
promotion = table(1..10 as id, 1..10 as relatedId);
db = database(dbName, VALUE, 1..10)
promotionPt = db.createPartitionedTable(promotion, `promotionPt, `id)
promotionPt.append!(promotion)
select * from promotionPt where id in relatedId
select id, id in relatedId as related from promotionPt
select first(id) from promotionPt group by id in relatedId
select * from promotionPt order by id in relatedId
// not in
select * from promotionPt where id not in relatedId
item = table(1..3 as id)
// join
select * from item inner join promotionPt on item.id=promotionPt.id where id in relatedId
解决办法
检查是否存在 in/not in 表达式中分布式表列出现在右侧的情况。