选择函数的MIN并创建虚拟表

时间:2016-05-31 20:08:26

标签: sql sql-server function

我需要取一个函数的最小值,如果它放在一个0 virtal列上的min值,如果没有,则放置1.

SELECT ID, Name, (X + Y) AS TOTAL, MIN(TOTAL) AS MINVALUE FROM TABLE

实施例

    ID    Name   TOTAL   MINVALUE
    1     item    22        0
    1     item    33        1
    1     item    50        1
    2     item2   200       1
    2     item2   30        0 

1 个答案:

答案 0 :(得分:3)

您可以使用窗口函数和case

执行此操作
select id, name, (x + y) as total,
       (case when (x + y) = min(x + y) over (partition by id)
             then 0 else 1
        end) as IsNotMinValue
from t;

我通常遵循Unix惯例“0”为假,“1”(实际上不是“0”)为真。因此,我将旗帜命名为IsNotMinValue,因为这就是我解释它的方式。