2010-04-12 5 views
0

J'ai une question liée à une requête de sélection. ici je suis en train d'expliquer ci-dessous.Résultat d'itération de la requête de sélection

J'ai une table avec les données suivantes

**Column1(Primary Key)  Column2   Column3** 
------      ---------  -------------- 
1        C 
2        C 
3        Null 
4        H 
5        L 
6        H 

mon problème est que je dois remplacer la valeur de Colonne3 avec la valeur correspondante de Column1 pour toutes les occurrences de données « C », " H "et" L ". S'il vous plaît me fournir une requête liée à ce problème. Comment puis-je résoudre cela en utilisant une requête ou une procédure stockée. S'il vous plaît élaborer la même chose.

J'ai besoin résultat de la requête de sélection finale comme suit

**Column1(Primary Key)  Column2   Column3** 
------      ---------  -------------- 
1        C    1 
2        C    2 
3        Null 
4        H    4 
5        L    5 
6        H    6 

Répondre

-1

comme ça?

select Column1, Column2, Column1 as Column3 from table 

Ou je ne suis pas sûr de ce que vous demandez réellement ..?

Ah, désolé. Ne lisez pas toute la question ici ...

La plupart des dialectes SQL ont un moyen de faire des sous-sélections conditionnelles, mais ils sont différents dans les dialectes différents. Alors, quel SQL utilisez-vous?

+0

ne lui donne pas un résultat correct pour la ligne 3. – AaronLS

0

Voulez-vous dire UPDATE?

UPDATE tbl SET Column3 = Column1 WHERE Column2 IN ('C', 'H', 'L', 'F') 

Ou pour tous;

UPDATE tbl SET Column3 = Column1 WHERE Column2 IS NOT NULL 
+0

K .: Où @ Alex avez-vous la ' 'F' de? –

+0

@Alex "J'ai besoin de la dernière requête", "J'ai une question liée à la sélection de la requête" – AaronLS

1
Select Column1, Column2, 
CASE 
    WHEN Column2 is not null THEN Column1 
    ELSE null --or whatever value you want for blank 
END as Column3 
From TableName t1 

Sinon, vous pourrait-il comme ceci:

Select Column1, Column2, 
CASE 
    WHEN Column2 = 'L' or Column2 = 'H' or Column2 = 'C' THEN Column1 
    ELSE null --or whatever value you want for blank 
END as Column3 
From TableName t1 
+0

Merci beaucoup monsieur .. cela m'a beaucoup aidé ... – user294146

0
UPDATE mytable 
SET Column3 = Column1 
WHERE Column2 in ('C', 'H', 'L') 
Questions connexes