我需要从DB查询中获取值1或0,而后者应该执行下一步:
到目前为止,我有下一件事:
从table_name中选择instr(field,'literal'),其中trunc(time)= trunc(sysdate)
如果表 table_name 中的字段包含'literal',则返回1(where子句检查 table_name中是否截断时间 等于截断的系统时间。)
我无法得到的是我的能力:
提前致谢。
P.S。:如果有些事情含糊不清,请评论这个问题。
答案 0 :(得分:3)
听起来你想要一个CASE声明。如果您发布了DDL来创建表,一些DML来填充数据,以及预期的输出,那将会很有帮助。如果查询在上午9点到10点之间运行,您似乎对要返回的内容有相互矛盾的要求。你说“如果...查询在某个时间段内执行...它应该返回0,否则为1”,但之后你会说“如果它从上午9:00到上午10:00总是返回1”。我猜你想要像
这样的东西SELECT MAX(zero_or_one)
FROM (
SELECT (CASE WHEN to_char( sysdate, 'HH24' ) = '09'
THEN 1
WHEN instr( column_name, 'literal' ) > 0
THEN 1
ELSE 0
END) zero_or_one
FROM table_name
WHERE trunc(date_column) = trunc(sysdate)
)