2010-04-12 6 views
0

У меня есть вопрос, связанный с выбором запроса. здесь я объясняю ниже.Итерационный результат из Select Query

У меня есть таблица со следующими данными

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

моя проблема в том, что я должен заменить значение колонка3 с соответствующим значением COLUMN1 для каждого появления данных «C», " H "и" L ". Пожалуйста, предоставьте мне запрос, связанный с этой проблемой. Как я могу решить это с помощью запроса или хранимой процедуры. Пожалуйста, уточните то же самое.

мне нужен окончательный выбор результата запроса следующим образом

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

ответ

-1

, как это?

select Column1, Column2, Column1 as Column3 from table 

Или я не уверен, что вы на самом деле просите ..?

Ах, извините. Не читайте весь вопрос ...

Большинство диалектов SQL имеют способ сделать условные подзапросы, но они различны в разных диалектах. Итак, какой SQL вы используете?

+0

не дает ему правильный результат для ряда 3. – AaronLS

0

Вы имеете в виду UPDATE?

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

или для всех;

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

@Alex К .: Где вы ПОЛУЧИТЕ ' «F'' из? –

+0

@Alex «Мне нужен окончательный запрос выбора», «У меня есть вопрос, связанный с выбором запроса» – 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 

В качестве альтернативы вы могли бы это он так:

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

Спасибо большое, сэр .. это мне очень помогло ... – user294146

0
UPDATE mytable 
SET Column3 = Column1 
WHERE Column2 in ('C', 'H', 'L') 
Смежные вопросы