使用SQL Server根据特定条件在输出中交换列值

时间:2013-04-27 14:21:42

标签: sql-server

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

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

我想要的是将“To”的值换成“From”和“From”的值到“To”,其中“Symbol”的值是“&lt;”,其余的将保持不变。 此输出应为选择查询的结果。

所以输出就像:

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

2 个答案:

答案 0 :(得分: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 Demo

答案 1 :(得分:0)

试试这个。

update tablename
SET [to]= case WHEN symbol='<' THEN [from] ELSE [to] END,
[from]=case WHEN symbol='<' THEN [to] ELSE [from] END