2009-10-30 9 views
1

Je voudrais savoir s'il y a de toute façon je peux comparer deux colonnes dans SQL Server.Permuter des colonnes à partir de deux tables de serveur sql

Les deux colonnes sont situées dans deux tables différentes.

Lorsque la colonne 1 la valeur est inférieure à la valeur de la colonne 2:
Je veux remplacer la valeur de la colonne 1 avec la valeur de la colonne 2.

+2

Pouvez-vous s'il vous plaît poster la structure de vos tables? –

+0

les deux tables ont la même structure, j'ai des colonnes d'arbre dans chaque table et le même nombre de lignes insérées. Les deux colonnes que je veux comparer sont INT. – Roch

Répondre

3
update table1 t1 
set t1.col1 = (select t2.col2 
        from table2 t2 
        where t2.id = t1.id 
        and t1.col1 < t1.col2) 

Quelque chose comme ça devrait le faire facilement.

Le seul point délicat que je vois correspond à la ligne de table2 à la ligne de table1. Dans mon exemple, je suppose que les deux tables partagent une colonne "id" unique qui permet une mise en correspondance facile. Modifiez la requête avec quelque chose de plus approprié.

+0

Dans SQL SERVER, vous ne pouvez pas ajouter de pseudonymes aux tables dans UPDATE. Donc, 'UPDATE table1 t1' ne fonctionnera pas. –

1

Vous devriez être en mesure de faire quelque chose comme ça :

update tablename set column1=column2 
from table1 inner join table2 on joincondition 
where column1 < column2; 

Difficile d'être plus spécifique sans la structure de table proprement dite.