如何将整数查询结果限制为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。
答案 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;