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 :

Convertir CHAR(18) en INT


Sujet :

Développement SQL Server

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Convertir CHAR(18) en INT
    Bonjour,

    J'ai un champ de ma table de type CHAR(18) qui représente une série de bit. Chaque bit représente un allergène. J'aimerais convertir ce champ en INT afin de faire BITWISE AND sur ce champ et trouver exactement quel est l'allergène.

    Example:
    Champ Allergene (CHAR(18)) = 000000000000010001

    Chaque bit représente un allergène différent. Donc, pour trouver l'allergène poisson ce que j'aimerais faire est:

    000000000000010001 & 000000000000010000 = 000000000000010000

    Je ne trouve aucun moyen de convertir mon champ CHAR(18) représentant du binaire en int. Est-ce que quelqu'un aurait une idée?

    Merci,
    Dagana

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Il faudrait d'abord commencer par utiliser le bon type de données.
    Stocker des valeurs entières ou binaires dans une colonne de type chaine de caractère est loin d'être ce qu'il y a de mieux en terme d'implémentation, et pis encore en termes de performances.

    Utilisez donc pour ce faire des colonnes de type binary ou varbinary
    Notez qu'au passage vous devrez mettre à jours les valeurs de la colonne en ajoutant 0x devant chacune d'entre-elles.

    Il ne vous reste alors qu'à écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT CAST(maColonne AS int) & CAST(0x000000000000010000 AS int)
    Qui vous retourne, dans votre cas, 65536.
    Mais vous pouvez aller encore plus loin en utilisant une colonne calculée, que vous pourrez indexer pour pouvoir filtrer efficacement votre table, et ainsi passer du temps sur autre chose

    @++

Discussions similaires

  1. comment convertir char to int
    Par fainardi69 dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 12/11/2010, 12h45
  2. convertir un char(10) en int(10)
    Par humiside dans le forum Développement
    Réponses: 7
    Dernier message: 27/01/2009, 16h43
  3. Convertir char ou String en Int
    Par Invité(e) dans le forum ASP
    Réponses: 2
    Dernier message: 10/06/2008, 16h17
  4. Comparer 2 Char / Convertir Char -> Int
    Par mbk-w dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/06/2006, 11h09
  5. Convertir un void* en int ...?
    Par alex6891 dans le forum C++
    Réponses: 15
    Dernier message: 15/11/2005, 22h43

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