1

我有一个 SQL Server 2008 R2 查询:

select 
    comp_companyid, balt, clim 
from 
    vCompanyOverCL

它返回多行,每行如下。

comp_companyid  balt  clim
--------------  ----  ----
          1112  1100  1000

我需要添加一个 where 子句,它只返回 balt 比 clim 大 20% 的数据(这些都是数字字段)

在上面的例子中,它不会被返回,因为它只有 10%

任何帮助,将不胜感激。

咪咪

4

2 回答 2

1

试试这个:

SELECT comp_companyid, balt, clim
FROM vCompanyOverCL
WHERE balt > 1.2 * clim
于 2013-06-13T17:20:13.753 回答
1

您可以在 SQL Server 中使用基本算术运算符;

select comp_companyid, bald, clim from vCompanyOverCL
where balt * 100 >= clim * 120

基本上会做你想做的。不确定您可能会遇到什么样的浮点错误,因为我不太了解 SQL Server 使用什么来表示浮点数。如果是 IEEE,那么你应该这样做;where balt * 100 >= clim * 120避免 int 到 float 的转换。

编辑:我更改了主代码片段,因为您不应该允许将任何一个值转换为浮点数。它会导致浮点错误。

于 2013-06-13T17:21:08.977 回答