2012-05-02 49 views
1

我有一个包含两列整数的表。我想选择它的数据(在一些标准的方式),并通过规则添加一个新列:SQL SELECT:将列映射到新列

  • 如果左边的数字越大,新列是1
  • 如果左数量较少,新列是-1
  • 如果数是相等的,新的列是0

实施例:

16 | 15 | 1 
20 | 28 |-1 
11 | 11 | 0 
28 | 14 | 1 
... 

回答

5
SELECT X,Y, 
    CASE WHEN X > Y THEN 1 
     WHEN X < Y THEN -1 
     ELSE 0 END AS "Z" 
FROM table_name 
+0

是标准的这个 “CASE”?我正在考虑加入(SELECT -1/0/1)ON(3个条件之一)并以某种方式进行分组... –

+0

是的,它是标准的SQL。查看[这个问题]的答案(http://stackoverflow.com/questions/4622/sql-case-statement-syntax)。 – Chad

5

听起来像是你想要的SIGN功能

SELECT Col1, Col2, SIGN(Col1 - Col2) AS Col3 
FROM T