在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'
感谢任何帮助。
答案 0 :(得分:1)
使用tablea
和fe
而不是GREATEST
和LEAST
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。)