Conversion varying char en tableau et recherche dans ce tableau
Bonjour à tous,
Le débutant est de retour ;).
J'ai une nouvelle question peut être simple mais je ne trouve pas la solution.
Voilà en fait j'ai 2 tables :
apcom_poteaux
num_pot |
insee |
2012953 |
69014 |
1 |
69014 |
807500 |
69014 |
E000357 |
69014 |
dossier_apcom
ref_ope |
insee |
appuis |
ET_CAPFT_UIAURA_69095_SSC_PM40655_PA77563_PB86087 |
69014 |
807500, 807501, 807502, 807503, 807504 |
ET_IMPL_UIAURA_69095_SSC_PM40655_PA77563_PB86087 |
69014 |
2012953, 2012952, 2012950, 2012951, 2012954 |
ET_FTTH_UIAURA_69095_SSC_PM40655_PA77563_PB86060 |
69014 |
E000357, E000356, E000345, E000346, E000349, E000350, E000351, E000352, E000353, E000354 |
ET_CAPFT_UIAURA_69014_SFA_PMZ56201_PA99901_PB105642 |
69014 |
310384, 310385, 310386, 310387, 310388, 310390, 000001, 310455, 310456, 310391, 310392, 310393, 310394, 310395 |
A savoir que normalement le format de la donnée num_pot devrait faire 7 caractères mais en fait il s'avère que dans la réalité c'est pas le cas j'ai des num_pot qui ont entre 1 et 7 caractères.
Voilà et ce que j'essai d'obtenir c'est ça :
num_pot |
insee |
ref_ope |
2012953 |
69014 |
ET_IMPL_UIAURA_69095_SSC_PM40655_PA77563_PB86087 |
1 |
69014 |
ET_CAPFT_UIAURA_69014_SFA_PMZ56201_PA99901_PB105642 |
807500 |
69014 |
ET_CAPFT_UIAURA_69095_SSC_PM40655_PA77563_PB86087 |
E000357 |
69014 |
ET_FTTH_UIAURA_69095_SSC_PM40655_PA77563_PB86060 |
Au départ j'ai essayé la requête suivante :
Code:
1 2 3
| select a.num_pot as num_pot,a.insee as insee, doss.ref_ope
from apcom_poteaux a
left join apcom_dossier doss on doss.insee=a.insee and doss.appuis like concat('%',a.num_pot,'%') |
Mais ca ne marche pas ça retrouvais tous 1 même au milieu des nombres.
Donc j'étais passé sur cette requête :
Code:
1 2 3
| select a.num_pot as num_pot,a.insee as insee, doss.ref_ope
from apcom_poteaux a
left join apcom_dossier doss on doss.insee=a.insee and doss.appuis like concat('%',LPAD(a.num_pot, 7, '0'),'%') |
Mais ici lorsque les nombres font moins de 7 caractères je ne les trouve pas.
Donc j'en suis à me dire qu'il faudrait que je prenne mon champ 'appuis' que je le convertisse en un tableau en séparant au niveau des ','. Puis je reformate chaque morceaux du tableau pour avoir 7 caractères avec LPAD et enfin je fais ma recherche.
Mais très franchement je ne vois pas du tout comment faire ça en sql. Après peut être qu'il y a plus simple.
Vous auriez des idées ?