2013-04-27 68 views
0

我有一个表格说“Temp”,列“From”,“To”和“Symbol” 我想将列“To”的值交换到列“从”的基础上在列“符号”值.. 对于实施例根据使用SQL Server的特定条件在输出中交换列值

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

所有我想是交换的值“为”到“从”和值“从”到“要”,其中值“符号”是“<”,其余部分保持不变。 并且此输出应该是选择查询的结果。

所以输出将是这样的:

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

回答

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

+0

它的工作谢谢:) – 2013-04-27 15:08:02

+0

欢迎@DeepSharma – 2013-04-27 15:09:05

0

试试这个。

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