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 :

Toutes les combinaison possible entre 0 et 1


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Homme Profil pro
    dba
    Inscrit en
    Décembre 2016
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : dba
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2016
    Messages : 119
    Points : 58
    Points
    58
    Par défaut Toutes les combinaison possible entre 0 et 1
    bonjour

    J'ai une table vide avec 7 colonnes BIT (A, B, C, D, E, F et G). Je cherche à remplir ce tableau avec des lignes représentant toutes les combinaisons possibles de ces colonnes. Idéalement, il n'y aurait pas de lignes contenant des doublons des mêmes combinaisons exactes. Bien que je montre 7 colonnes ici, le nombre de colonnes pourrait être plus grand, donc la solution devrait être évolutive.

    Un extrait du tableau après avoir été rempli ressemblerait à ce qui suit:


    Idéalement, cela serait basé sur une instruction INSERT, mais je suis également ouvert à une solution de boucle T-SQL. J'ai essayé d'utiliser CROSS JOINS, mais mes connaissances limitées ne m'ont pas permis d'aller très loin.

    Toute aide serait grandement appréciée.
    Images attachées Images attachées  

  2. #2
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ; WITH SR AS (SELECT CAST(0 AS BIT) AS ZZ UNION ALL SELECT CAST(1 AS BIT))
    select ZA.ZZ AS A, ZB.ZZ AS B, ZC.ZZ AS C, ZD.ZZ AS D, ZE.ZZ AS E, ZF.ZZ AS F, ZG.ZZ AS G, ZH.ZZ AS H
    from SR AS ZA
    CROSS JOIN SR AS ZB
    CROSS JOIN SR AS ZC
    CROSS JOIN SR AS ZD
    CROSS JOIN SR AS ZE
    CROSS JOIN SR AS ZF
    CROSS JOIN SR AS ZG
    CROSS JOIN SR AS ZH
    ORDER BY A, B, C, D, E, F, G, H
    À adapter pour ton besoin précis.

  3. #3
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Votre besoin c'est de changer la base tous vos entiers de 0 à (nb colonnes)² - 1 de la base 10 en base 2.
    Il y a pas mal de solutions ici :
    https://stackoverflow.com/questions/...-binary-string

  4. #4
    Membre expérimenté

    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2014
    Messages
    815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 815
    Points : 1 350
    Points
    1 350
    Billets dans le blog
    2
    Par défaut
    bonsoir

    sur la même colonne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    declare @math as table (test varchar(10))
    insert into @math values('1'),('0');
     
    with cte as(
    select 0 as max_value,cast(test as varchar(20)) test from @math
    union all
    select max_value+1,cast(t1.test+t2.test as varchar(20)) from cte t1 inner join @math t2 on 1=1
    where max_value <=10)
    select * from cte where max_value=10 order by test

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/04/2015, 13h00
  2. [C#] Effectuer toutes les combinaisons possibles entre (n) entiers
    Par unix27 dans le forum Débuter
    Réponses: 11
    Dernier message: 05/11/2014, 16h04
  3. Stocker dans un tableau toutes les combinaisons possibles entre plusieurs tableaux.
    Par gui-yem dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 19/03/2014, 15h22
  4. Toutes les combinaison possibles entre les termes
    Par Wim88 dans le forum Général Java
    Réponses: 7
    Dernier message: 28/02/2014, 18h27
  5. toutes les combinaisons possibles
    Par marocleverness dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 29/05/2006, 00h11

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