SELECT pdn.brands
FROM pd_dsp_notice pdn
LEFT JOIN pd_dsp_notice_prompt pdnp ON pdnp.notice_id = pdn.id AND pdnp.user_id = 3
LEFT JOIN au_dealer au ON au.organization_no = 3
WHERE 1 = 1
AND (pdn.modify_date >= sysdate - 180 OR pdn.state = 1)
AND (pdn.promulgate_user_id = 3 OR pdn.audit_user_id = 3 OR
(pdn.auditrs = 1 AND
(pdn.id IN (SELECT notice_id
FROM pd_dsp_notice_viewer nv
WHERE nv.viewuser_id = 3) OR
((SELECT count(*) AS num
FROM (
SELECT regexp_substr(3, '[^_]+', 1, level) AS s1
FROM dual
CONNECT BY level <= regexp_count(3, '_') + 1) d1
JOIN (SELECT regexp_substr(pdn.brands, '[^_]+', 1, 1) AS s2
FROM dual
CONNECT BY level <= regexp_count(pdn.brands, '_') + 1) d2 ON d2.s2 =
d1.s1) > 0 AND
(SELECT count(*) AS num
FROM (SELECT regexp_substr(au.parent_area_code,
'[^_]+',
1,
level) AS s1
FROM dual
CONNECT BY level <=
regexp_count(au.parent_area_code, '_') + 1) d1
JOIN (SELECT regexp_substr(pdn.orgs, '[^_]+', 1, level) AS s2
FROM dual
CONNECT BY level <= regexp_count(pdn.orgs, '_') + 1) d2 ON d2.s2 =
d1.s1) > 0 AND
(pdn.busis IS NULL OR instr(pdn.busis, '2') > 0)
))))
AND pdn.promulgate_user_id = 3
---------regexp_count(pdn.brands, '_')
報pdn.brands 識別符號無效
uj5u.com熱心網友回復:
單獨拿出來執行試試呢uj5u.com熱心網友回復:
你把regexp_count(pdn.brands, '_')里的pdn.brands,換成一個常量試試看,比如換成regexp_count('abc_123', '_')。因為這里參考的pdn.,在括號外的好多層,懷疑是這里參考不到這個表。
uj5u.com熱心網友回復:
Oracle 對多層查詢 (使用小括號),只認兩層,你這參考,至少三層了,要提出來才可以。轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/32944.html
標籤:開發
