2013-12-20 31 views
0

您好我想創建一個查詢,它將只包含在某些情況下甲骨文只能在where子句是否存在一種條件

SELECT q.job_queue_id ID_1, 
     q.job_id   ID_2, 
     j.job_name, 
     q.queue_date, 
     q.username, 
     q.status, 
     q.processed_date, 
     q.comments, 
     q.rowid 
    FROM RS_NEW_JOB_QUEUE q 
    INNER JOIN RS_NEW_JOB j 
     on q.JOB_ID = j.JOB_ID 
    /* 
    CASE 
     WHEN l_role_id>0 then where q.username=l_name 
     ELSE --I don't want to have a where clause 
     END 
    */ 
    order by q.processed_date desc; 

我曾嘗試不同的方法WHERE子句,但我總是得到一個錯誤。 任何想法?

+0

什麼是l_role_id和l_name?他們是固定值嗎? – infiniteRefactor

+0

是的,他們是固定值 – Nianios

回答

1

根據條件進行思考。 SQL不是一種命令式語言。

SELECT q.job_queue_id ID_1, 
    q.job_id   ID_2, 
    j.job_name, 
    q.queue_date, 
    q.username, 
    q.status, 
    q.processed_date, 
    q.comments, 
    q.rowid 
FROM RS_NEW_JOB_QUEUE q 
INNER JOIN RS_NEW_JOB j ON q.JOB_ID = j.JOB_ID 
WHERE (l_role_id>0 AND q.username = l_name) OR l_role_id <= 0 
ORDER BY q.processed_date desc; 
+0

看來,這是工作。謝謝 – Nianios