Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

question sql


Reika2000

Messages recommandés

Désolé pour le titre sans précision, mais je ne sais pas comment l'expliquer dans le titre. Donc, voila :

J'ai par exemple la colonne d'une table qui contient le prénom et le nom séparés par un espace, comment puis-je n'afficher que le prénom ?

Si j'ai oublié de préciser quelque chose, excusez moi, je débute.

Merci.

Lien vers le commentaire
Partager sur d’autres sites

Pour pas te faire chier à retenir toutes les commandes différentes selon les SGBD, autant le faire en PHP avec la commande stristr (string haystack, string needle) ou strrchr (string haystack, string needle)

Elles renvoient la partie de haystack après needle.

 

L'autre moyen est d'utiliser strpos (string haystack, string needle, int offset ).

Elle renvoie la position de la première occurence de needle dans haystack.

Ensuite il te suffit d'utiliser substr (string string, int start, int length ).

 

Pour plus de détail réfère-toi à la doc PHP de Nexen ou une autre.

Lien vers le commentaire
Partager sur d’autres sites

Vu que la question porte sur du SQL pur, je doute que notre ami ait l'intention d'installer PHP sur les machines de sa fac pour parvenir à ses fins. (enfin, ça dépend si il demande ça pour un TP de SQL ou pour un projet de site web PHP perso)...

Sinon, pour Oracle, SUBSTR existe bien, mais il faut utiliser INSTR(la_chaine, truc_recherché) pour trouver la position de truc_recherché dans la_chaine

A part ça, toujours avec Oracle, il est possible de faire mumuse avec RTRIM ou LTRIM (qui permettent de supprimer certains caractères à droite (resp. à gauche) d'une chaine, et qui sont utilisées d'habitude pour supprimer les espaces (' ' est le "set" par défaut)) en leur spécifiant un "set" un peu spécial, mais c'est la méthode bourrin, et le résultat serait incompréhensible :-D

Lien vers le commentaire
Partager sur d’autres sites

Effectivement, la question portait sur du sql.

Au final, pour si ça interesse quelqu'un, j'ai fait :

SELECT NVL (SUBSTR (Nom,1,INSTR(Nom,' ') - 1), Nom) "Le nom"

FROM NOMS;

Le NVL, c'est parce que parfois, il peut ne pas y avoir "nom prénom" mais seulement nom (je l'ai découvert après). A part ça, c'est exactement ce qu'on ma dit au début avec les précisions apportées. Merci tout le monde, en tout cas !

 

Sinon, il y a un moyen de travailler en sql avec la même syntaxe que sous Oracle... sans Oracle ? Parce que c'est un peu lourd de pas pouvoir le travailler en dehors de la fac à part sur du papier. Ou alors un interpréteur le proche possible ? Je précise que j'y connais pratiquement rien, donc allez y doucement :P

PS: on sort peut-être un peu du cadre du post, mais bon...

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...