2012-05-02 3 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

Является ли это «ДЕЛО» в стандарте? Я думал о присоединении к (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 
Смежные вопросы