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 :

Pb chaine vides


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 27
    Par défaut Pb chaine vides
    Bonjour,

    je viens de migrer de sql-server7 à sql-server2000.

    Sous sql-server7, l'instruction

    select 'toto'+IsNull(Col1,'')+'toto' from Matable

    donnait 'totototo' dans le cas ou Col1 = null

    Mais maintenant, j'obtient 'toto toto' ...

    J'arrive à résoudre le problème en bricolant :
    select 'toto'+LTRIM(RTRIM(IsNull(Col1,''))+'toto' from Matable

    Quelqu'un a une idée pour que je n'ai pas à reprendre toutes mes requetes?

    Merci d'avance

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 001
    Billets dans le blog
    6
    Par défaut
    Vous deviez être dans un paramétrage de session du genre SET CONCAT_NULL_YIELDS_NULL OFF.

    Ce n'est bien évidemment pas souhaitable.

    Corrigez vos requêtes en utilisant la fonction COALESCE :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select 'toto' + COALESCE(Col1, '') + 'toto' 
    from Matable
    isnull est spécifique à SQL Server alors que COALESCE fait partit de la norme SQL.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. Tester une chaine vide !!! :s
    Par hysteresis dans le forum ASP
    Réponses: 3
    Dernier message: 05/11/2005, 22h25
  2. Réponses: 4
    Dernier message: 25/10/2005, 20h42
  3. Création de table - chaine vide
    Par christellel198 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 20/10/2005, 15h18
  4. copie de string donne une chaine vide
    Par zmatz dans le forum SL & STL
    Réponses: 5
    Dernier message: 15/10/2005, 15h31
  5. [BDD] renvoyer une chaine vide au lieu de null
    Par cmoulin dans le forum JDBC
    Réponses: 6
    Dernier message: 06/05/2004, 11h38

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