我有一个文字字段,用户将一年放入:the_SCHEME_YEAR
。然后,用户获取该年的数据。但是,当用户将文本字段留空时,我想要将所有年份都拉回来。
这是我开发的代码,但是当:the_SCHEME_YEAR
被客户留空时,无法获得所有年份。
AND the_year in NVL(:the_SCHEME_YEAR, to_char( '2005,'||'2006,'||'2007'))
任何提示都会有所帮助。
SELECT the_year
, ent_type
, SUM (a.no_of_parts) number_ents
, SUM (ent_value * a.no_of_ents) value_ents
FROM TEST_REGISTER A
WHERE the_year > 2004 and the_year <= the_max_year
AND ent_type is not null
AND the_year in NVL(:the_SCHEME_YEAR, to_char( '2005,'||'2006,'||'2007'))
GROUP BY the_year, ent_type
ORDER BY 1
答案 0 :(得分:0)
试试这个:
AND ( (:the_SCHEME_YEAR is null and the_year in (2005, 2006, 2007))
OR the_year = :the_SCHEME_YEAR
)
(请注意,SQL in
运算符需要一个值列表,而不是它们的连接字符串。)