在SQL语句中划分。

时间:2012-07-27 17:04:15

标签: sql division

好的,我的问题是:

我有一个表itemconfig,其中有很多关于存储在我们仓库中的项目的数据。我需要选择一个特殊的group项目,这样我就可以做一些与工作相关的测试。到目前为止,当我滚动数据库时,我一直在脑子里做数学,但必须有一个更简单的方法。

在itemconfig中我想特别查看列case_qty和pal_qty以及itm_num。我想要做的是选择所有itm_num,其中pal_qty / case_qty大于说500。这将立即给我所有itm_num与我的测试相关的信息。可悲的是,我不熟悉如何做到这一点,或者甚至可能。

感谢。

3 个答案:

答案 0 :(得分:8)

分区在大多数SQL方言中实现:使用/,如下所示:

select * from table
where  pal_qty / case_qty > 500

假设case_qty是非负的,你可以保护自己免于被零除(并使用pal_qty上的索引,如果有的话*)将两边乘以case_qty

select * from table
where  pal_qty > 500 * case_qty

*感谢Vincent Savard了解此观察结果。

答案 1 :(得分:3)

这是可能的,使用简单的WHERE子句:

SELECT 
  itm_num
FROM itemconfig
WHERE 
  /* Make sure you don't divide by zero */
  case_qty > 0 AND
  pal_qty / case_qty > 500

答案 2 :(得分:0)

您可以在WHERE子句中使用除法。

SELECT itm_num
FROM itemconfig
WHERE (pal_qty/case_qty) > 500

如果你将case_qty等于零,那么你需要确保你没有除以零

SELECT itm_num
FROM itemconfig
WHERE (pal_qty/case_qty) > 500
    AND case_qty > 0