选择出现多次的JSON对象

问题描述 投票:0回答:1

我正在尝试写一个查询,以返回所有有一个以上etapesSupervision的列车。

我的表有一个名为DETAIL的列,在本专栏中我可以找到我的火车的JSON。

"nomTrain": "EVOL99",
"compositionCourtLong": "LONG",

"sillons": [{

    "numeroTrain": "EVOL99"
}],
"sillonsV4": [{
"refSillon": "sillons/4289505/2"
}],
"branchesStif": [{
    "data": "49",
    "data": "BP",
    "data": "ORIGINE"
} ],
"etapesSupervision": [{
    "data": "PR/0087-758896-00",
    "data": "PR/0087-758607-BV",
    "superviseur": "1287",
    "uoSuperviseur": "B"
},
{
    "data": "PR/0087-758607-BV",
    "data": "PR/0087-001479-BV",
    "superviseur": "1287",
    "uoSuperviseur": "B"
}],

这是我写的查询:

    select * from course where CODE_LIGNE_COMMERCIALE='B'
     --and ref = 'train/2018-11-12'
    and  instr(count(train.detail,'"etapesSupervision":'))> 1 ;

使用这个,我返回只有一个etapesSupervision的列车。

问题是列DETAIL是JSON,所以我觉得我不能用它做很多事情。

我也试过like,但它也不起作用。

sql json oracle oracle11g
1个回答
0
投票

谢谢您的意见。这是有效的查询:

select data,data,data
from train
where 
 length(DETAIL) - length(replace(DETAIL,'uoSuperviseur',null)) > 20  ; 

这样我只有一个以上的主管。

再次感谢

© www.soinside.com 2019 - 2024. All rights reserved.