SQL MAX表达式函数

时间:2015-06-10 03:45:28

标签: sql max netezza

在SQL语句中,我需要选择表达式为

SELECT maxValues AS MAX(MIN(100,x),50)

其中x是另一个复杂SQL查询的结果。基本上在x的位置我有另一个SQl选择语句。

如果我使用select语句执行上面的表达式,我会收到以下错误。

  

错误[42000]错误:' maxValues as max(min(100,x),50)'        nullerror'除了'或者' FOR'或者' INTERSECT'或者'订购'或者' UNION'

感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

使用tableafe而不是GREATESTLEAST

GREATEST和LEAST为您提供值列表中的最大值和最小值,而MAX和MIN为您提供列中的最大值和最小值。

答案 1 :(得分:0)

您可以使用声明变量的事务将值从一个查询传输到下一个

DECLARE
V_X NUMBER;
V_RESULT NUMBER;
V_SQL_1 CLOB := "_QUERY 1_";

BEGIN
  EXECUTE IMMEDIATE V_SQL_1 INTO V_X;

  SELECT MAX(MIN(100,V_X),50) INTO V_RESULT FROM DUAL;

END

(这假定是oracle-SQL。)

答案 2 :(得分:0)

我选择CASE

SELECT maxValues AS CASE when x > 100 then 100
                         when x < 50 then 50
                         else x end

(如果支持......我不认识IBM Neteeza。)