我正在尝试编写查询以返回所有火车的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
,但这也不起作用。
答案 0 :(得分:0)
谢谢您的评论。 这是有效的查询:
select data,data,data
from train
where
length(DETAIL) - length(replace(DETAIL,'uoSuperviseur',null)) > 20 ;
这样,我的火车只有一名以上的主管。
再次感谢