如何将sql整数查询结果限制为< = 1

时间:2012-08-01 15:20:24

标签: sql postgresql integer

如何将整数查询结果限制为1.返回2为1,返回1为1,返回0.5为0.5,因为它是< = 1.我不想修改表格,我只想修改结果。

这是我的确切查询。

select ((select "V01" from sports where "UID" = '1') * 1.0 ) / 
(select "V01" from master where "BALL" = 'REQUIREMENT') ;

我正在使用postgres。

3 个答案:

答案 0 :(得分:2)

要限制,你可以这样做:

select 
    case 
        when yourNumber >= 1 then 1
        else yourNumber
    end
...

然后,您只需将此概念应用于您的查询。

如Wiseguy所述,您也可以这样做:

select LEAST(yourNumber, 1)

,因为这是postgresql。

第一个解决方案适用于任何ANSI SQL兼容数据库。

<强>更新

应用于您的查询,我认为(如果我理解您想要的正确),它将是这样的:

select LEAST(1,
               ((select "V01" from sports where "UID" = '1') * 1.0 ) / 
               (select "V01" from master where "BALL" = 'REQUIREMENT')
       );

答案 1 :(得分:1)

使用LEAST函数,文档:http://www.postgresql.org/docs/8.3/static/functions-conditional.html。另外,请查看GREATEST

SELECT LEAST(1, <your value>)

编辑用最少的

替换了GREATEST

答案 2 :(得分:0)

试试这个:

select CASE 
         WHEN ((select V01 from sports where UID = '1') * 1.0 ) / 
               (select V01 from master where BALL = 'REQUIREMENT') >= 1
         THEN 1
         ELSE ((select V01 from sports where UID = '1') * 1.0 ) / 
               (select V01 from master where BALL = 'REQUIREMENT')
       END;