Je ne savais pas comment titter cette question, mais j'ai une table Oracle qui a une colonne pour chaque jour de la semaine. Celles-ci représentent les jours où une entreprise est ouverte. Les valeurs de ces colonnes sont soit «y» ou «n». C'est ainsi que la table a été configurée il y a des années et je suis incapable de le changer.
ID | DAYS_OPEN 1 MONDAY - FRIDAY 2 TUESDAY - SATURDAY
3 Réponses :
Eh bien, vous avez les données dans un format moche. Vous pouvez utiliser un cas géant Il n'y a que 2 ^ 7 = 128 combinaisons possibles, c'est donc réellement possible avec un cas géant code> Expression:
< / code>. Vous pouvez également mettre les valeurs dans une table de référence et y participer à cela. P> p>
Je conviens que les données sont dans un format moche. Je n'avais pas examiné une déclaration de cas pour chaque possibilité, et ce serait une déclaration de cas géante à coup sûr. Malheureusement, cette même table a une colonne pour chaque mois que je devrai appliquer une logique similaire pour obtenir une variété de mois. J'espérais qu'il y avait un moyen plus simple de le faire que je ne pense juste pas à.
@DSTNRGRS. . . Je ne suis pas sûr que la méthode "plus simple" soit en réalité plus simple. Je suggérerais une table de référence.
résultat: p> résultat: p> résultat: p>
Cela semble prometteur. Je vais essayer d'envelopper ma tête autour de cela. Je vous ferai savoir si cela fonctionne pour moi. Merci.
trouvé solution plus facile: Exemple complet: p> résultat: p> EDIT: Élargir sur la réponse originale Pour appliquer le même processus aux mois de l'année. Je devais envelopper le numéro de mois entre crochets dans le décodage. Ensuite, dans le Regexp_replace, j'ai spécifié une liste non correspondante (période et espace). P> Voici l'exemple complet: p> et les résultats: < / p>
Les deux solutions fonctionnent, mais cela peut facilement être ajouté à une requête existante, donc je vais avec cet itinéraire. Je peux aussi facilement adapter cela pour trouver les mois d'activité aussi. Merci de votre aide.
Pouvez-vous suggérer comment changer le motif Regexp_replace pour effectuer ce même processus lorsque vous avez des valeurs à double chiffre (numéros mois)? Le modèle actuel se divise sur les premiers et derniers chiffres adjacents, mais lorsque je change cela de la semaine de la semaine à des mois, puis d'octobre à décembre sont des numéros de mois à double chiffre.
@DSTNRGRS Les mois de 2 chiffres seraient beaucoup plus faciles, c'est-à-dire 01-12
@DSTNRGRS J'ai simplifié votre requête - s'il vous plaît vérifier.
Les mois à deux chiffres font autant plus de sens. Merci
Toutes les combinaisons sont possibles? Je veux dire que les jours ouverts peuvent-ils être du jeudi à lundi, par exemple et ce qui devrait être le résultat dans ce cas? Jeudi - lundi? Le résultat peut également être divisé en deux ou plusieurs périodes telles que lundi, mercredi et vendredi-samedi?
@Dornaut Oui, toutes les combinaisons sont possibles, bien que la majorité soit le lundi au vendredi et au lundi - dimanche. Cette table contient également une colonne pour chaque mois que je devrai appliquer une logique similaire à celle-ci. Je pensais juste que je commencerais avec le scénario plus facile.