Bạn KHÔNG thể tham chiếu bí danh cột trong mệnh đề SELECT trong mệnh đề WHERE, ít nhất là không trong cùng một truy vấn. Bạn có thể truy vấn phụ nó hoặc chỉ sử dụng các tham chiếu cột ban đầu.
select
bobooks."ID" request,
bobooks."TITLE",
bobooks."AUTHOR",
bogenres."NAME" genre,
bobooks."OWNER",
bostatus."NAME" status,
bolanguages."LANGUAGE" language,
bolanguages2."LANGUAGE" secondary_language
from BO_BOOKS bobooks
inner join
BO_GENRES bogenres on bobooks.genre = bogenres.id
inner join
BO_STATUS bostatus on bobooks.status = bostatus.id
inner join
BO_LANGUAGES bolanguages on bobooks.language = bolanguages.id
left outer join
BO_LANGUAGES bolanguages2 on bobooks.secondary_language = bolanguages2.id
where
(replace(:P19_AUTHOR, ' ', '') = ''
or
bobooks.author like '%'||:P19_AUTHOR||'%')
AND
(replace(:P19_TITLE, ' ', '') = ''
or
bobooks.title like '%'||:P19_TITLE||'%')
AND
(:P14_LANGUAGE = 'all'
or
bolanguages."LANGUAGE" = :P19_LANGUAGE
or
bolanguages2."LANGUAGE" = :P19_LANGUAGE)
AND
(:P19_GENRE = 'all'
or
bogenres."NAME" = :P19_GENRE)
AND
(replace(:P19_OWNER, ' ', '') = ''
or
bobooks.owner like '%'||:P19_OWNER||'%');