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

Requêtes et SQL. Discussion :

[SQL] type de champ retourné différent de sa définition


Sujet :

Requêtes et SQL.

  1. #1
    Membre habitué
    Inscrit en
    Juin 2005
    Messages
    275
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 275
    Points : 186
    Points
    186
    Par défaut [SQL] type de champ retourné différent de sa définition
    J'ai Access 2002 SP3.

    Mon problème est le suivant : j'ai deux requêtes basiques qui fonctionnent parfaitement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id1, champ1 FROM table WHERE id1 <> '';
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id2, champ1 FROM table WHERE id1 = '';
    Mon champ1 est de type Memo, sa taille n'est pas limitée ni au départ, ni dans le résultat de chaque requête (tout se passe bien.)

    Maintenant, je souhaite unir le résultat de ces deux requêtes par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT id1, champ1 FROM table WHERE id1 <> ''
    UNION
    SELECT id2, champ1 FROM table WHERE id1 = '';
    Cette requête somme toute simpliste pose un souci : champ1 est maintenant limité à 255 caractères dans le résultat de ma requête ; alors qu'il est de type Memo dans la définition de ma table, le résultat de la requete semble est placé dans un champ de type TEXTE (qui, par spécifications, est limitée à 255 caractères dans Access).

    J'avoue que je ne vois pas du tout d'où vient le problème. Est-il possible de définir le type de retour des éléments directement dans la requete, comme le permettent la plupart des SGBD ; càd un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT champ as VARCAHR(20) FROM.....

  2. #2
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 128
    Points : 12 185
    Points
    12 185
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Il te faut remplacer UNION par UNION ALL...

    Argy

  3. #3
    Membre habitué
    Inscrit en
    Juin 2005
    Messages
    275
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 275
    Points : 186
    Points
    186
    Par défaut
    en un mot : PARFAIT

    C'est exactement la réponse à mon problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT id1, champ1 FROM table WHERE id1 <> ''
    UNION ALL
    SELECT id2, champ1 FROM table WHERE id1 = '';
    Merci

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

Discussions similaires

  1. ACCESS-SQL-type de champs
    Par couret3000 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 03/11/2007, 09h17
  2. Réponses: 5
    Dernier message: 24/07/2006, 15h01
  3. [SQL Server] Quel type de champ pour du commentaire
    Par brmartin dans le forum Langage SQL
    Réponses: 6
    Dernier message: 24/07/2006, 13h51
  4. [SQL SERVER 2000]taille et type des champs
    Par Franck2mars dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 09/05/2006, 12h59
  5. Réponses: 9
    Dernier message: 02/03/2005, 23h46

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