1

我有一个表说“Temp”,其中包含“From”、“To”和“Symbol”列我想根据“Symbol”列中的值将“To”列的值交换到“From”列中。例如

Temp      From        To        Symbol
        -1000        -24858       <
         2000         50000       ><
         4000         8000        >

我想要的只是将“To”的值交换为“From”,将“From”的值交换为“To”,其中“Symbol”的值为“<”,其余部分将保持不变。这个输出应该是选择查询的结果。

所以输出将是:

Temp      From        To        Symbol
        -24858       -1000        <
         2000         50000       ><
         4000         8000        >    
4

2 回答 2

3
Select (Case when symbol='<'
then [to] 
else [from] end)as [from],(Case when symbol='<'
then [from] 
else [to] end)as [to] from temp

这是SQL FIDDLE 演示

于 2013-04-27T14:44:59.440 回答
0

尝试这个。

update tablename
SET [to]= case WHEN symbol='<' THEN [from] ELSE [to] END,
[from]=case WHEN symbol='<' THEN [to] ELSE [from] END
于 2013-04-27T14:43:42.767 回答