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 :

un select case un peu particulier


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut un select case un peu particulier
    Bonjour

    Je tente un truc un peu particulier et je m'en sors pas.
    En fait, je suis en train de programmer une forum et j'aimerais pouvoir traiter un point précis dans al base de donéne pour faire un peu de préformatage d'une donnée

    L'idée c'est de remonter le titre du Topic et s'il dépasse les 25 caractères de le tronquer et de lui ajouter ... juste aprés.

    Je vous présente ma requête actuelle, je bloque sur le Select case.
    J'avais essayer avec un IF mais ça marchait pas beaucoup mieux

    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
     
    SELECT TOP 1 
    'Par : ' + ISNULL(U.UserName,'') + '<br />Le : ' + ISNULL(CONVERT(VARCHAR(50),M.Date_Redaction,103),'') +
    '<br />' + ISNULL(LEFT(T.Topic_Titre,25),'' + 
    (
    SELECT CASE LEN(T.Topic_Titre)
    	WHEN  > 25 THEN 'kapouet'
    	ELSE 'prout'
    END)
    )
    FROM FORUM_Topic T
    INNER JOIN FORUM_Message M ON M.Id_Topic = T.Id_Topic
    INNER JOIN aspnet_Users U ON U.UserId = M.Redacteur
    WHERE Id_Forum = @Id_Forum
    ORDER BY M.Date_Redaction DESC
    Pouvez vous m'aider ?

  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
    21 998
    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 : 21 998
    Billets dans le blog
    6
    Par défaut
    Quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT TOP 1 'Par : ' + COALESCE(U.UserName,'') 
               + '<br />Le : ' + COALESCE(CONVERT(VARCHAR(50),M.Date_Redaction,103),'') 
               + '<br />' + CASE 
                               WHEN LEN(T.Topic_Titre) <= 25 THEN T.Topic_Titre
                               ELSE COALESCE(LEFT(T.Topic_Titre,25),'')
                            END AS Data
    FROM   FORUM_Topic T
           INNER JOIN FORUM_Message M ON M.Id_Topic = T.Id_Topic
           INNER JOIN aspnet_Users U ON U.UserId = M.Redacteur
    WHERE  Id_Forum = @Id_Forum
    ORDER BY M.Date_Redaction DESC
    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/ * * * * *

  3. #3
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Ouais, exactement.
    T'es vraiment un pro, SQLPro

    Mais j'ai une petite question : c'est quoi la différence entre ISNULL et COALESCE ?

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    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 : 21 998
    Billets dans le blog
    6
    Par défaut
    ISNULL est propriétaire et n'admet que deux arguments. COALESCE c'est la norme et admet une infinité d'arguments.

    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/ * * * * *

  5. #5
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Merci, je penserais à l'utiliser plus souvent maintenant.

    @ la prochaine.

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

Discussions similaires

  1. Problème SELECT, CASE et Group by
    Par Royd938 dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 03/10/2014, 07h41
  2. [MySQL] Select mysql un peu particulier...
    Par maxence64 dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 21/06/2011, 18h01
  3. erreur select case
    Par maximedrouet dans le forum ASP
    Réponses: 4
    Dernier message: 15/05/2006, 14h40
  4. vérification de passage dans un select case
    Par arsgunner dans le forum ASP
    Réponses: 5
    Dernier message: 14/06/2004, 10h05
  5. Réponses: 2
    Dernier message: 05/01/2004, 11h23

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