案例在oracle中不起作用
对于查询中的一列,我需要一个案例在oracle中不起作用,oracle,Oracle,对于查询中的一列,我需要一个CASE语句 情况是 如果我的列名ltt.f\u complete task\u completed值为0,则该值应为NO,如果1则为YES 我试着像下面一样,但得到了 ORA-00905:缺少关键字 这是我的疑问 SELECT flv.property_name project_name, flv.building building_name, flv.flat_no unit_no, ldet.customer_fname || ' '
CASE
语句
情况是
如果我的列名ltt.f\u complete task\u completed
值为0
,则该值应为NO
,如果1
则为YES
我试着像下面一样,但得到了
ORA-00905:缺少关键字
这是我的疑问
SELECT flv.property_name project_name, flv.building building_name,
flv.flat_no unit_no,
ldet.customer_fname
|| ' '
|| ldet.customer_mname
|| ' '
|| ldet.customer_lname customer_name,
la.booking_date holding_date, ltt.start_date task_date,
tid.task_desc task_type, fol.next_follow_up_date,
ltt.remarks task_comment, ltt.f_complete task_completed,
CASE TASK_VALUE WHEN '0' THEN 'NO'
WHEN '1' THEN 'YES',
act.act_desc activity_description, flv.follow_type followup_type,
fol.remarks followup_comment,
fol.next_follow_up_date next_followup_date,
actt.act_desc next_todo_activity
FROM xxcus.xxacl_pn_leases_all la,
(SELECT *
FROM xxcus.xxacl_pn_lease_det
WHERE sr_no = 1) ldet,
xxcus.xxacl_pn_lease_task_trl ltt,
xxcus.xxacl_pn_customer_followup fol,
xxacl_pn_flat_det_v flv,
xxcus.xxacl_pn_hold_task_v tid,
xxcus.xxacl_pn_hold_act_v act,
xxcus.xxacl_pn_followup_type_v flv,
xxcus.xxacl_pn_hold_act_v actt
WHERE la.booking_no = ltt.draft_form_no(+)
AND ltt.draft_form_no = fol.booking_no(+)
AND ltt.task_id = fol.task_id(+)
AND ltt.task_sr_no = fol.task_sr_no(+)
AND la.delete_flag = 'N'
AND la.booking_no = ldet.booking_no
AND fol.followup_date = TO_DATE (SYSDATE - 1)
AND la.flat_id = flv.flat_id
AND ltt.task_id = tid.task_id
AND fol.activity_id = act.act_id
AND fol.followup_type_id = flv.follow_type_id
AND fol.next_activity_id = actt.act_id
请提出问题所在
更新
SELECT flv.property_name project_name, flv.building building_name,
flv.flat_no unit_no,
ldet.customer_fname
|| ' '
|| ldet.customer_mname
|| ' '
|| ldet.customer_lname customer_name,
la.booking_date holding_date, ltt.start_date task_date,
tid.task_desc task_type, fol.next_follow_up_date,
ltt.remarks task_comment, ltt.f_complete task_completed,
act.act_desc activity_description, flv.follow_type followup_type,
fol.remarks followup_comment,
fol.next_follow_up_date next_followup_date,
actt.act_desc next_todo_activity
FROM xxcus.xxacl_pn_leases_all la,
(SELECT *
FROM xxcus.xxacl_pn_lease_det
WHERE sr_no = 1) ldet,
xxcus.xxacl_pn_lease_task_trl ltt,
xxcus.xxacl_pn_customer_followup fol,
xxacl_pn_flat_det_v flv,
xxcus.xxacl_pn_hold_task_v tid,
xxcus.xxacl_pn_hold_act_v act,
xxcus.xxacl_pn_followup_type_v flv,
xxcus.xxacl_pn_hold_act_v actt
WHERE la.booking_no = ltt.draft_form_no(+)
AND ltt.draft_form_no = fol.booking_no(+)
AND ltt.task_id = fol.task_id(+)
AND ltt.task_sr_no = fol.task_sr_no(+)
AND la.delete_flag = 'N'
AND la.booking_no = ldet.booking_no
AND fol.followup_date = TO_DATE (SYSDATE - 1)
AND la.flat_id = flv.flat_id
AND ltt.task_id = tid.task_id
AND fol.activity_id = act.act_id
AND fol.followup_type_id = flv.follow_type_id
AND fol.next_activity_id = actt.act_id
缺少的关键字是
END
。应该是这样写的:
CASE TASK_VALUE WHEN '0' THEN 'NO'
WHEN '1' THEN 'YES' END
缺少的关键字是
END
。应该是这样写的:
CASE TASK_VALUE WHEN '0' THEN 'NO'
WHEN '1' THEN 'YES' END
现在获取错误为
ORA-00923:FROM关键字not found where expected
@coder更新您的原始问题以反映您获取新错误的实际查询。我认为,您应该在结束后添加,
。您可以更新您的查询吗?我尝试了ltt.f\u complete task\u completed,案例ltt.f\u complete当“0”时,然后是“否”,当“1”时,然后是“是”结束,
但是错误为ORA-00932:不一致的数据类型:预期的数字得到字符
我通过删除'1'
和0中的引号破解了它,现在它工作了。错误为ORA-00923:from关键字未找到预期的位置
@coder更新您的原始问题以反映您的实际查询从中获取新错误。然后您应该在结束后添加,
,我认为。你能更新你的查询吗?我尝试了ltt.f\u complete task\u complete,CASE ltt.f\u complete当'0'时,然后'NO'当'1'时,然后'YES'结束,
但是得到的错误是ORA-00932:不一致的数据类型:预期的数字得到字符
我通过从'1'
和0中删除引号破解了它,成功了