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 :

erreur la clause WHERE (col1, col2,)IN() avec plusieurs colonnes in T-SQL


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Août 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 8
    Par défaut erreur la clause WHERE (col1, col2,)IN() avec plusieurs colonnes in T-SQL
    delete from tab1
    where ( table_col1, table_col2, table_col2)
    in ( select table_col1, table_col2, table_col2
    from tab1
    where cond
    );
    quelle est la requete equiv en T-SQL?

  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 010
    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 010
    Billets dans le blog
    6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    delete from tab1
    where cond
    Vu que tu joint la table cible sur elle même !

    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 régulier
    Inscrit en
    Août 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 8
    Par défaut la selection a partir d'une autre table tab2
    si une ligne de tab1 exist dans un ens de lignes de tab2 je la supprime

    delete from tab1
    where ( col1, col2, col2)
    IN ( select col1, col2, col2
    from tab2
    where cond
    );
    quelle est la requete equiv en T-SQL?

  4. #4
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    Citation Envoyé par DJAIF2a Voir le message
    si une ligne de tab1 exist dans un ens de lignes de tab2 je la supprime

    delete from tab1
    where ( col1, col2, col2)
    IN ( select col1, col2, col2
    from tab2
    where cond
    );
    quelle est la requete equiv en T-SQL?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    delete from tab1
    where col1 + col2 + col2
    IN (  select col1 + col2 + col2
              from tab2
              where cond
            );
    NB : Col1,col2 ...coln doivent être convertis en varchar

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 13
    Par défaut
    Jaurais tendance à dire que c'est


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    DELETE T1
    FROM TABLE1 T1
    WHERE EXISTS
    (SELECT 1 FROM TABLE2 T2
    WHERE T2.Col1 = T1.Col1 AND T2.Col2 = T1.Col2 AND [Cond])
    Si je n'ai rien compris au problème, veuillez m'excuser par avance

Discussions similaires

  1. Erreur sur clause where
    Par enicnath dans le forum Macro
    Réponses: 3
    Dernier message: 27/08/2014, 15h34
  2. Réponses: 16
    Dernier message: 07/03/2011, 16h00
  3. Erreur requête : clause WHERE mal utilisée
    Par anxious dans le forum Requêtes
    Réponses: 2
    Dernier message: 15/03/2010, 02h35
  4. Réponses: 2
    Dernier message: 27/10/2009, 21h13
  5. T-SQL equiv de la clause WHERE (col1, col2,)IN(select )
    Par DJAIF2a dans le forum Développement
    Réponses: 1
    Dernier message: 02/08/2008, 17h31

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