不能为我的生活弄清楚为什么我会把这一行拿回来
iperl> 22 / 7 # automatically print scalar result of expression: 3.14285714285714
运行此查询
order_id | job_name | memname | status | state
----------+----------+---------+----------------+----------
0e4ba | pwd_test | | Wait Condition | Deleted
总结果:
select order_id, job_name, memname, status, state
from a150708002_ajob
where order_time < '20150601'
and status != 'Ended OK'
or state != 'Deleted'
and order_time < '20150601';
不确定发生了什么事?
更新
尝试以下仍然没有成功
em800=> select order_id, job_name, memname, status, state from a150708002_ajob where order_time < '20150601' and status != 'Ended OK' or state != 'Deleted' and order_time < '20150601';
order_id | job_name | memname | status | state
----------+----------+---------+----------------+----------
0e4ba | pwd_test | | Wait Condition | Deleted
0eevd | DBPE220A | | Wait Condition | Held
0eeve | SHAW | | Wait Condition | Held
表架构:
em800=> select order_id, job_name, memname, status, state from a150708002_ajob where order_time < '20150601' and not (status = 'Ended OK' or state = 'Deleted');
order_id | job_name | memname | status | state
----------+----------+---------+----------------+----------
0e4ba | pwd_test | | Wait Condition | Deleted
0eevd | DBPE220A | | Wait Condition | Held
0eeve | SHAW | | Wait Condition | Held
(3 rows)
回应Norbert van Nobelen的回答
Table "public.a150701002_aevt"
Column | Type | Modifiers
----------------------+-----------------------------+-----------
evt_no | integer | not null
evt_time | timestamp without time zone | not null
evt_type | character varying(1) | not null
new_value | integer |
old_value | integer |
order_id | character varying(5) |
state_digits_new_ffu | character varying(15) |
state_digits_old_ffu | character varying(15) |
Indexes:
"pk_a150701002_aevt_0" PRIMARY KEY, btree (evt_no)
task_class | character varying(3) |
ind_cyclic | character varying(1) |
reten_days | character varying(3) |
reten_gen | character varying(2) |
order_table | character varying(770) |
order_lib | character varying(44) |
sticky_ind | character varying(1) |
seq_cnt_added | integer |
short_ffu | character varying(12) |
dsect_ffu | character varying(100) |
isn_ | integer | not null
time_ref | character varying(1) |
time_zone | character varying(9) |
appl_type | character varying(10) |
appl_ver | character varying(10) |
appl_form | character varying(30) |
cm_ver | character varying(10) |
state_mask | character varying(9) |
multy_agent | character varying(1) |
schedule_env | character varying(16) |
sys_affinity | character varying(5) |
req_nje_node | character varying(8) |
adjust_cond | character varying(1) |
in_service | character varying(255) |
stat_cal | character varying(30) |
stat_period | character varying(1) |
instream_jcl | text |
use_instream_jcl | character varying(1) |
lpar | character varying(8) |
due_out_daysoffset | character varying(3) |
from_daysoffset | character varying(3) |
to_daysoffset | character varying(3) |
order_time | character varying(14) |
avg_start_time | character varying(6) |
cpu_time | integer |
em_stat_cal_ctm | character varying(20) |
em_stat_cal | character varying(30) |
em_stat_period | character varying(1) |
interval_sequence | character varying(4000) |
specific_times | character varying(4000) |
tolerance | integer |
cyclic_type | character varying(1) |
current_run | integer |
elapsed_runtime | integer |
workloads | character varying(525) |
def_nodegroup | character varying(50) |
nodegroup_set_by | character varying(1) |
failure_rc | character varying(5) |
failure_rc_step | character varying(8) |
failure_rc_procstep | character varying(8) |
highest_rc | character varying(5) |
highest_rc_step | character varying(8) |
highest_rc_procstep | character varying(8) |
highest_rc_memname | character varying(8) |
associated_rbc | character varying(20) |
cm_status | character varying(32) |
depend_service_in | character varying(1) |
depend_service_out | character varying(1) |
em_stat_detail_data | character varying(1500) |
prev_odate_rerun_counter | integer |
jobrc | character varying(5) |
解答:
结果证明逻辑很好,只是单元格内的值有一个尾随的空格
em800=> select order_id, status, state from a150712002_ajob where order_time < '20150615' and (status != 'Ended OK' or state != 'Deleted') and order_time < '20150615';
order_id | status | state
----------+----------------+----------
0eevd | Wait Condition | Deleted
0eeve | Wait Condition | Held
(2 rows)
所以我只是在查询中添加了一个尾随空白字符。谢谢你们:))
答案 0 :(得分:1)
状态检查中缺少一些括号:
select order_id, job_name, memname, status, state from a150708002_ajob
where order_time < '20150601' and
(status != 'Ended OK' or state != 'Deleted') and order_time < '20150601';
括号确定如何评估OR。