IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

probleme avec SUBSTRING


Sujet :

MS SQL Server

  1. #1
    Membre habitué
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2007
    Messages
    496
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2007
    Messages : 496
    Points : 146
    Points
    146
    Par défaut probleme avec SUBSTRING
    Bonjour
    j'ai un probleme avec un substring et je vois pas l'erreur

    substring(dbo.[T_Infoprod].Ligne;1;4)
    erreur avec dbo

  2. #2
    Membre habitué
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2007
    Messages
    496
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2007
    Messages : 496
    Points : 146
    Points
    146
    Par défaut
    j'ai trouvé ca
    select substring(Libelle,0,4) from Zones_affectation
    mais maintenant comment je peux faire pour n'avoir que les chiffres j'ai pas reussi a trouvé sur les tutos
    parce que j'ai des chiffres comme 1 FIN et je ne veux que 1

    ca assez clair?

  3. #3
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Hello,

    Je ne crois pas que tu ai besoin de la table ou pas de cette manière

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT SUBSTR(Ligne,1,4) 
    FROM TaTable
    WHERE TesConditions
    Bon encore en retard, faut que je réponde plus vite

  4. #4
    Membre habitué
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2007
    Messages
    496
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2007
    Messages : 496
    Points : 146
    Points
    146
    Par défaut
    merci quand meme a tu une idée pour ne prendre que les chiffres apres un substring ou il faut fair eautre chose

  5. #5
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    comme 1 FIN et je ne veux que 1
    Pas vraiment d'idee, tes chiffres sont toujours en première position

  6. #6
    Membre habitué
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2007
    Messages
    496
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2007
    Messages : 496
    Points : 146
    Points
    146
    Par défaut
    oui mes chiffres sont en premiere position
    j'ai trouvé quelque chose mais c'est avec des caractere je peux surement le modifier pour le faire sur des chiffre
    WITH t AS (SELECT 'qdhjdfgjk@machaine.jdfgdfhlkjmshlms' AS chaine FROM dual
    UNION ALL
    SELECT 'qdhjdfgjkfghkmlmlmf@machaine.jdfgdf' FROM dual
    )
    SELECT chaine,
    SUBSTR(chaine, 1, INSTR(chaine, '@') -1) AS gauche,
    SUBSTR(chaine, INSTR(chaine, '.',-1)+1) AS droite
    FROM t

    CHAINE GAUCHE DROITE
    qdhjdfgjk@machaine.jdfgdfhlkjmshlms qdhjdfgjk jdfgdfhlkjmshlms
    qdhjdfgjkfghkmlmlmf@machaine.jdfgdf qdhjdfgjkfghkmlmlmf jdfgdf
    a l'adresse suivante: http://www.developpez.net/forums/sho...ight=substring

    qui ne tente rien a rien

  7. #7
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Et avec un RTRIM, je crois que ça marche en SQL Server

    Pardon j'ai dis une grosse connerie

  8. #8
    Membre habitué
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2007
    Messages
    496
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2007
    Messages : 496
    Points : 146
    Points
    146
    Par défaut
    Select SUBSTRing(Libelle,1,INSTR(Libelle, ' ')-1) From Zones_affectation

    Probleme avec le INSTR il ne connait pas!!!

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2002
    Messages : 332
    Points : 502
    Points
    502
    Par défaut
    Ceci devrait fonctionner. Attention, ce type de fonction peut ralentir considérablement le temps d'exécution d'une requête...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    CREATE FUNCTION [dbo].[UDF_GET_NUMBER_FROM_INFOPROD]
        (	@p_STRING			NVARCHAR(2000) ) 
    	RETURNS int
    AS
    BEGIN
     
    	DECLARE @v_ID INT, @v_CHAR CHAR(1), @v_TEMP_STRING VARCHAR(2000)
     
    	SET @v_TEMP_STRING = ''
     
    	WHILE @v_ID IS NULL AND LEN(@v_TEMP_STRING) < LEN(@p_STRING)
    		BEGIN
     
    			SET @v_CHAR = SUBSTRING(@p_STRING, LEN(@v_TEMP_STRING) + 1 , 1)
     
    			IF ISNUMERIC(@v_CHAR) = 1
    				BEGIN
    					SET @v_TEMP_STRING = @v_TEMP_STRING + @v_CHAR
    				END
    			ELSE
    				BEGIN
    					SET @v_ID = CAST(@v_TEMP_STRING AS INT)
    				END
     
    		END
     
    	IF @v_ID = 0 
    		SET @v_ID = NULL
     
    	RETURN @v_ID
     
    END
    Exemple d'utilisation:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    DECLARE @t_TEST TABLE (TEST_STRING VARCHAR(100))
     
    INSERT INTO @t_TEST SELECT '123 irehgliurehgiureh'
    INSERT INTO @t_TEST SELECT '4565 nhgnjrtbnert'
    INSERT INTO @t_TEST SELECT 'xxxxxxxxxxxxxxxxxxxx'
    INSERT INTO @t_TEST SELECT '1 egtewr 345345 gergerger'
     
    SELECT [dbo].[UDF_GET_NUMBER_FROM_INFOPROD] (TEST_STRING) FROM @t_TEST
    -----------
    123
    4565
    NULL
    1

  10. #10
    Membre habitué
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2007
    Messages
    496
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2007
    Messages : 496
    Points : 146
    Points
    146
    Par défaut
    Merci pour cette réponse
    mais je debute donc ou dois je mettre le CREATE FUNCTION?

  11. #11
    Membre habitué
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2007
    Messages
    496
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2007
    Messages : 496
    Points : 146
    Points
    146
    Par défaut
    j'ai créée deux requetes une pour le creae function et l'autre avec
    SELECT [dbo].[UDF_GET_NUMBER_FROM_INFOPROD] (Libelle) FROM Zones_affectation
    ca me sort bien que les chiffres

    Comment puis je l'integrer dans une requete ?

    tu comprends ce que je veux dire ou pas?

  12. #12
    Membre habitué
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2007
    Messages
    496
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2007
    Messages : 496
    Points : 146
    Points
    146
    Par défaut
    grace a l'aide d'un developpeur babyneedle il m'a trouvé la solution pour mon probleme(j'avais une autre discussion mais je voulais savoir si je pouvais faire autrement)
    Les deux solutions marchent a merveille reste a savoir pour celle ci ou dois je la mettre pour quelle soit valable tout le temps (j'en ai aucune idée )

    heureusement que ce forum existe!!!

  13. #13
    Membre habitué
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2007
    Messages
    496
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2007
    Messages : 496
    Points : 146
    Points
    146
    Par défaut
    La fonction CREATE FUNCTION se met directement dans le parametre "Fonction définies par l'utilisateur" après pour le select on l'utilise dans l'analyseur de requete

    merci a tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme avec substr
    Par didyfatima dans le forum Langage
    Réponses: 3
    Dernier message: 21/03/2012, 20h57
  2. probleme avec la fonction SUBSTRING
    Par kanebody dans le forum InterBase
    Réponses: 1
    Dernier message: 04/01/2010, 08h21
  3. probleme avec substr
    Par ben7875 dans le forum Langage
    Réponses: 2
    Dernier message: 07/04/2009, 14h50
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo