有没有办法检查SQL / Postgres中表的最小值和最大值是否相等?

时间:2016-02-24 00:55:01

标签: sql postgresql where clause

说一个专栏是:

BindAttribute

最小值和最大值相等。有没有办法在WHERE子句中检查它?

3 个答案:

答案 0 :(得分:0)

WITH t(price) AS ( VALUES
  (3.00),
  (3.00)
)
SELECT
  CASE
    WHEN max(price) = min(price) THEN TRUE
    ELSE FALSE
  END
FROM t;

答案 1 :(得分:0)

有一百年的HAVING用于按聚合过滤。

SELECT 1
FROM   YOUR_TABLE
HAVING MAX(PRICE) = MIN(PRICE)

答案 2 :(得分:-1)

这是在MS SQL中这样做的一种方式,我想这应该会以某种方式帮助你Postgres:

IF EXISTS (SELECT NULL FROM Table HAVING MAX(Price) = MIN(Price))
    PRINT 'Equal'
ELSE
    PRINT 'Not equal'

另一种受Dmitry回答启发的方式:

IF ((SELECT CASE WHEN MAX(Price) = MIN(Price) THEN 1 END FROM Table) = 1)
    PRINT 'Equal'
ELSE
    PRINT 'Not equal'