Выберите объект JSON, который появляется более одного раза - PullRequest
0 голосов
/ 12 ноября 2018

Я пытаюсь написать запрос, чтобы вернуть все поезда, которые имеют более одного 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, но он тоже не работает.

1 Ответ

0 голосов
/ 13 ноября 2018

Спасибо за ваши комментарии.Это запрос, который работал:

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

И таким образом, у меня есть только поезда, которые имеют более одного супервизора.

Еще раз спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...