2010-04-12 132 views
0

我有一个与select查询相关的问题。这里我在下面解释。Select Query的迭代结果

我有一个表具有以下数据

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

我的问题是我有与列1相应值的数据“C”的每一次出现,以取代值栏3“ 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 2010-04-12 15:20:57

0

你的意思是更新?

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'从? – 2010-04-12 15:22:10

+0

@Alex“我需要最终选择查询”,“我有一个与选择查询有关的问题” – AaronLS 2010-04-12 15:25:39

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 2010-04-12 15:36:25

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