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

Développement SQL Server Discussion :

Création fonction personnalisée [2012]


Sujet :

Développement SQL Server

  1. #1
    Membre à l'essai
    Homme Profil pro
    logisticien
    Inscrit en
    Mai 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : logisticien
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2015
    Messages : 15
    Points : 17
    Points
    17
    Par défaut Création fonction personnalisée
    Bonjour
    Je cherche à créer une fonction personnalisée. Son but , enlever les zéros inutiles mis à gauche d'une référence.
    Exemple : article 0000000000123456 devient 123456
    J'ai fait cette fonction dans Access et elle marche parfaitement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Function SansZero(ArticleAvecZero As String)
        If Left(ArticleAvecZero, 1) = "0" Then
            While Left(ArticleAvecZero, 1) = "0"
                SansZero = Right(ArticleAvecZero, (Len(ArticleAvecZero) - 1))
                ArticleAvecZero = SansZero
            Wend
        Else
            SansZero = ArticleAvecZero
        End If
    End Function
    Celle ci dans SQL Server est enregistrée - apparemment sans souci (elle apparait dans la liste des fonctions)- mais elle ne donne aucun résultat
    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
    USE [EBSMOP]
    GO
    /****** Object:  UserDefinedFunction [dbo].[SansZero]    Script Date: 23/09/2015 09:02:09 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER FUNCTION SansZero (@ArticleAvecZero nvarchar(255))
    RETURNS nvarchar(255)
     WITH EXECUTE AS CALLER
    AS
    BEGIN
        declare @SansZero  nvarchar(255)
    	 while left (@ArticleAvecZero, 1) = '0'     	
    		SET @SansZero = right(@ArticleAvecZero, len(@ArticleAvecZero) - 1 ) 	
    		SET @ArticleAvecZero = @SansZero             
     return @SansZero
     
    END;
    Voici le message si je tente de lancer une requête qui fasse appel à cette fonction
    Nom : sql.jpg
Affichages : 166
Taille : 83,5 Ko

    Merci pour votre aide.

  2. #2
    Membre à l'essai
    Homme Profil pro
    logisticien
    Inscrit en
    Mai 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : logisticien
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2015
    Messages : 15
    Points : 17
    Points
    17
    Par défaut création fonction personnalisée - la réponse
    EU-RE-KA !
    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
    USE [EBSMOP]
    GO
    /****** Object:  UserDefinedFunction [dbo].[SansZero]    Script Date: 23/09/2015 11:24:53 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER FUNCTION [dbo].[SansZero] (@ArticleAvecZero nvarchar(255))
    RETURNS nvarchar(255)
     WITH EXECUTE AS CALLER
    AS
    BEGIN
        declare @SansZero  nvarchar(255)
     
    if left (@ArticleAvecZero, 1) <> '0'   
    	set @SansZero = @ArticleAvecZero
    else
     
    	 while left (@ArticleAvecZero, 1) = '0'     
    			begin
    				SET @SansZero = right(@ArticleAvecZero, len(@ArticleAvecZero) - 1 ) 	
    				SET @ArticleAvecZero = @SansZero         
    			end
     
     return @SansZero
     
    END;
    Nom : sql2.jpg
Affichages : 159
Taille : 86,3 Ko

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

Discussions similaires

  1. Création d'une fonction personnalisée
    Par guismoman60 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/11/2014, 11h15
  2. [AC-2010] Création fonction personnalisée
    Par jul2012 dans le forum VBA Access
    Réponses: 1
    Dernier message: 05/12/2013, 18h22
  3. Création des fonctions personnalisées avec mysql
    Par mutkas10 dans le forum Débuter
    Réponses: 3
    Dernier message: 24/06/2009, 17h41
  4. Création des fonctions personnalisées
    Par mutkas10 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 23/06/2009, 17h43
  5. [VBA-E] Fonction personnalisée moyenne à fin M
    Par Geoffray dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/06/2006, 20h58

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